如何在MySQL中进行自然排序

时间:2015-04-12 15:59:50

标签: php mysql sorting datetime sql-order-by

我在Stack Overflow和Google上看过很多帖子,但实际上并没有帮助

以下是这种情况,这些是我的列值:

ICT_Member_2014_06_02
ICT_Member_2015_05_05
Creative_Member_1992_09_01
Zealous_Ok_2015_12_22

所以我希望我的结果应该出现在字母表的基础上,然后是日期(数字), 它应首先按字母升序排序,然后再按日期排序。

对此有何解决方案?

由于

3 个答案:

答案 0 :(得分:0)

SELECT * FROM yourTable ORDER BY ICT_Member_2014_06_02 DESC, Zealous_Ok_2015_12_22 DESC;

答案 1 :(得分:0)

试试这个

MySQL:首先按长度排序,然后按列值

排序
SELECT col_name
       FROM sorting_test
       ORDER BY LENGTH(col_name), col_name

答案 2 :(得分:0)

试试这个:

ORDER BY col_value, 
         DATE(RIGHT(col_value,10)) DESC

ORDER BY中的第一项将处理您的前缀。

第二项 - DATE(RIGHT(col_value,10) - 将提取您的值的最后十个字符 - 日期。然后它将尝试将它们作为DATE值处理,并按顺序对它们进行排序。如果日期转换失败(因为您的某些值没有日期),那么这些将在排序中排在第一位。