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 に答える