1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQLで数字の並びを指定する方法

Last updated at Posted at 2019-07-05

MySQLでデータベースのカラムに入っている数字が並んでくれない状況に陥ってはいませんか?
MySQLでは、関数を使うことで数字を順番に並ばせることができるようになります。

カラムの型を数字に変更する

例えば、以下のようなcatテーブルがあるとします。
現状として、level(レベル)が思い通り低い順番(昇順)に並んでくれていないとします。

【user】テーブル

name level
クロ 12
しょーぐん 144
あいうえお 23
マモル 231
あああ 3
Xx_GoD_xX 999

一見1から始まりそれ通り並んでいるように見えますが、「あああ」というユーザが一番低いのでうまく昇順に並べれていません。
数字が思い通りに並んでくれないときは大体カラムの型が「文字列として認識されています。

そこで、下記のような記述をすることでカラムの型を数字に変更させ、数字と認識されて思い通りに並んでくれます。

SELECT * FROM user ORDER BY CAST(level AS SIGNED)

CAST()による効果

CAST()の引数に並び替えの基準とするカラム名を入れることで、様々な型への変更が可能になります。
今回は、カラムの型を数字としたかったので、CAST()の引数にAS SIGNEDを付け加えました。

それにより、上記のテーブルはlevel(レベル)通り昇順に並んでくれるようになりました。

user_name level
あああ 3
クロ 12
あいうえお 23
しょーぐん 144
マモル 231
Xx_GoD_xX 999

参考サイト

以下のサイトも参考にすることによって、いろんな型への変更方法を知ることができます。

12.10 キャスト関数と演算子

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?