【MySQL】文字列カラムを数値でソートする

文字列のカラムに以下のデータが入っているとき。

number
------
1
20
100
50
400

そのままそのカラムで昇順ソートすると、

order by number
number
------
1
100
20
400
50

となる。

そうじゃなくて、

number
------
1
20
50
100
400

こうソートしたい場合の方法。

lpadを使う

MySQL :: LPAD
https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_lpad

order by lpad(number, 10, '0')

SQLにてlpadを使って、左を0埋めすることで、数値ソートを実現している。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください