这个问题在这里已经有答案了:
mysql选择一段字符串并按该段排序(4个答案)
sql:使用特定列中的子字符串排序…可能吗(7个答案)
两年前关门了。
我有一个sql表,其列名为 reference_number
. reference_number
具有格式为x-mmyy-x的值(mm代表月份,yy代表年份-x是自动递增的。)
我的问题是,如果我在 reference_number
2012年3月(x-0312-x)
2012年4月(x-0412-x)
2013年1月(x-0113-x) ORDER BY reference_number
会把它们归类为
x-0113-x号
x-0312-x号
x-0412-x号
有办法分类吗 reference_number
按正确的日期顺序。
1条答案
按热度按时间oogrdqng1#
我假设你的
reference_number
列的数据类型是字符字段?按字符字段排序将“尽最大努力”理解数据并将其解释为所需的排序格式,在本例中,您将注意到它将引用的日期部分解释为数值,因此,将按这种方式对它们进行排序。
字母数字数据将按此排序。
如果您需要按日期排序的数据,可以使用多种解决方案,但最终您需要
DateTime
要排序的值。或者添加一个
reference_date
列,并通过直接插入或db触发器等方式将日期值添加到此列。imho,你必须有日期值才能按日期排序,不管你决定怎么做。