【发布时间】:2018-12-04 09:52:32
【问题描述】:
我有一个 sql 表,其中有一列名为 reference_number。
reference_number 具有格式为 x-MMYY-xxxx 的值。
(MM 表示月份,YY 表示年份。-xxxx 是自动递增的。)
我的问题是,如果我在reference_number 中输入以下值
2012 年 3 月 (x-0312-xxxx)
2012 年 4 月 (x-0412-xxxx)
2013 年 1 月 (x-0113-xxxx)
ORDER BY reference_number 会将它们排序为
x-0113-xxxx
x-0312-xxxx
x-0412-xxxx
有没有办法按正确的日期顺序对reference_number 进行排序。
【问题讨论】:
-
x字符中隐藏着什么? -
它正在正确订购它们。从小到大。 MySQL 不知道您打算将 0312 设为 monthYear。另一个建议是将日期保留在另一列中(除了在您的订单参考中,而不是代替),或者 yearDay 可能有效(如果我的大脑工作正常)。
-
您可能需要将年份部分和月份部分作为两个单独的数据进行排序。
-
@JonStirling 你是对的。 sql 以常规方式对其进行排序,忽略 x-MMYY-xxxx 的格式。我需要一种方法来教 sql 它应该按正确的日期顺序排序。