LoginSignup
16
10

More than 5 years have passed since last update.

【MySQL】ORDER BYで条件を指定、任意の順番に並び替える!

Posted at

ORDER BYで条件を指定する方法

背景

とある処理でマスター情報がない場合、
ユニークキーのカラム「id」には10桁の整数(マスターのidとかぶらない数値)を登録していた。
一覧の表示順が「id」の降順だったため、
マスター情報がないデータを一覧の最後に表示したいが、最初に表示されてしまう...
そんなとき、以下のコードで解決したのでメモ。

メモ
select * from テーブル名 order by id < 1000000000 desc, id >= 1000000000 desc, id desc;

単純な昇順降順

単純な昇順降順
SELECT * FROM テーブル名 ORDER BY id;
SELECT * FROM テーブル名 ORDER BY id desc;

idの昇順(asc)、降順(desc)に並び替わる。
デフォルトは昇順(asc)です。
明示的に示す場合は、ascをフィールド名の後ろに付け足します。
最終行をORDER BY id asc;にしても結果は同じ。

条件を指定

条件を指定
SELECT * FROM テーブル名 ORDER BY id = 1234 DESC;

id1234のものが一番最初になる。

条件を指定
SELECT * FROM テーブル名 ORDER BY id <= 5 DESC;

id5以下のものが一番上に並ぶ。

まとめ

ORDER BY句には、条件(関数や評価式)が指定できる!以上!

16
10
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
16
10