カテゴリー別アーカイブ: sql

mysqlのorder byに条件をつけてみる


select文のorder句は、並び替えをする。

たとえば、

1
SELECT * FROM items ORDER BY name;

とすると、nameの昇順に並び替わるというもの。

BYの次に条件をつけると挙動が変わる。

1
SELECT * FROM items ORDER BY name='unco' DESC;

これだとnameがuncoのものが一番最初になる。
奇妙だ。

他にも、

1
SELECT * FROM items ORDER BY age <= 5 DESC;

とすると、ageが5以下のものが一番上に並ぶことになる。
非常に奇妙だ。

全てのデータベースでできるような書き方なのかは知らんが、mysqlとsqliteではこういう動作になった。