フラグが立っているものを優先して取得するクエリ

投稿者: Anonymous

例えば、orderはcreated_atですが、flag=trueのものだけ先に取得して、次にそれ以外を取得したい場合、どういう風にクエリを投げるのがシンプルでしょうか?

解決

フラグはブーリアンのカラムだったら、普通のソートで十分だと思います:

SELECT * FROM t ORDER BY flag DESC, created_at;

ブーリアンではない場合、MySQLのIFでブーリアンに変換できます:

SELECT *
FROM t
ORDER BY IF(flag = 'xxx', 1, 0) DESC, created_at;
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *