脳内プラグイン

プログラム関連のメモ書きというか落書きというか

SQLのORDER BYについて

ORDER BYで特定文字列が含まれている場合に後ろにするやり方をメモ。

「CASE」という関数を使うらしい。というか基本的なことっぽい...?

SELECT * FROM テーブル名 WHERE '特定の条件' ORDER BY (CASE WHEN フィールド名 LIKE '特定の文字列' THEN 0 ELSE 1 END);

のように書けば特定の文字を先頭にもっていくことができる。

SELECT * FROM テーブル名 WHERE '特定の条件' ORDER BY (CASE WHEN フィールド名 LIKE '特定の文字列' THEN 1 ELSE 0 END);

逆にこうすれば後ろに持っていくことができる。

これはよく使うSQLだ!と思ったが、そもそもこんなソートをしなくてもいいように設計するべきですよね...。

精進が必要です。