1

我有以下格式的数据:

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
4

2 回答 2

2

您可以CASE像这样使用表达式来执行此操作:

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

这是一个 SQL 小提琴演示

于 2012-09-27T11:49:38.480 回答
0

我也有类似的问题,你们看看我的吗?

MySQL按字母数字排序不起作用

和我的 sql 小提琴

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

于 2018-04-26T09:38:37.657 回答