MySQLやSQLで使えるTips†
クエリを指定した順番でソートする†
- ORDER BY `colomn name` ASC では当たり前だが通常ソートになる。
- 指定した順番どおりにクエリを取り出したい。
- 行数分だけSELECT書くのはスマートでないし、処理的にも重すぎる。
SELECT * FROM `table` WHERE `colomn` IN ('2','3','4') ORDER BY FILED(`colomn`, '2','3','4');
- `colomn` IN ()で絞り込み
- ORDER BY FIELD(`colomn`, values)でこの順番で並べる
クエリをランダムでソート(?)する†
- 何らかの理由があってランダムでクエリを取り出したい場合。
- 全部SELECTして配列に取り込んでランダムするのはスマートでないし、処理的にも重すぎる。
SELECT * FROM `table` WHERE `colomn` = '1' ORDER BY rand();