mysql自然排序给定的数据

时间:2012-09-27 11:21:47

标签: mysql sql sorting sql-order-by natural-sort

我的数据格式如下:

AC-1234/12
AC-4321/12
ANA-4532/12
231
IHC-543/12
F-125/12
F-345/12
ds-234/12

我想在mysql中对此进行自然排序。

结果应该是这样的:

AC-1234/12
AC-4321/12
ANA-4532/12
F-125/12
F-345/12
ds-234/12
231

尝试了一些mysql自然排序技巧,但对我不起作用。建议非常感谢。

我试过了:

select column 
from table_name 
Order By LENGTH(column), column

2 个答案:

答案 0 :(得分:2)

您可以使用CASE表达式执行此操作:

SELECT column
FROM  Tablenametemp 
ORDER BY
   CASE 
     WHEN column REGEXP '^-?[0-9]+$' THEN 1 --If column is number 
     ELSE 0 
   END, column

Here is a SQL fiddle demo

答案 1 :(得分:0)

我有类似的问题,你们会检查我的吗?

MySQL Order By Alpha Numeric Not Working

和我的sql小提琴

http://www.sqlfiddle.com/#!9/7773a6/1