タグ

ブックマーク / qiita.com/ArimaRyunosuke (1)

  • GROUP BY を使用せずに HAVING を使う - Qiita

    例えば下記のように複雑な条件に基づいてレコードを抽出する場合、WHERE を使うと残念なことになります。 SELECT T.id, ( CASE WHEN /*難解極まりない条件1*/ false THEN 1 WHEN /*難解極まりない条件2*/ false THEN 2 WHEN /*難解極まりない条件3*/ false THEN 3 ELSE 0 END ) AS stat FROM tbl T WHERE ( CASE WHEN /*難解極まりない条件1*/ false THEN 1 WHEN /*難解極まりない条件2*/ false THEN 2 WHEN /*難解極まりない条件3*/ false THEN 3 ELSE 0 END ) = 2 とても保守性が低いと思います。 WHERE を無くして stat を使用してアプリケーションレイヤーで絞り込むことも出来ますが、そうす

    GROUP BY を使用せずに HAVING を使う - Qiita
    nakunaru
    nakunaru 2014/09/20
    うーん、たまたまMySQLでは動くんだろうけど、意味的に正しくない構文なんじゃなかろうか。書いた人もそれはわかった上での記事だと思うけど。
  • 1