Category1~27でどれかが最大値がM以上である かつ countがN以上であるという条件でSELECTしたいのですが、
WHERE MAX(Category1)>=M OR ... OR MAX(Category27)>=M
のように書くしかないのでしょうか?いい書き方があれば教えてください。
また、このSQL文に「Category1~27でどれかが最大値がM以上である」という条件を適用するとどうなるでしょうか?
http://q.hatena.ne.jp/1277630884#a1024004
コメントありがとうございます。
条件式は以下のようになります。
WHERE Category1>=M OR ... OR Category27>=M AND count>=N
MySQLのバージョンを、最低限でもMySQL 4.0、4.1、5.0といったレベルまで明記願います。大きな機能追加や一部の仕様変更があります。
正規化していないために、こんな苦労をするということは分かった上での質問ですよね?
GREATEST関数で、各行のCategory1~27の最大値を拾って、Mと比較する方法はどうでしょうか?
SELECT * FROM tbl WHERE GREATEST(Category1,Category2, <中略> ,Category27)>=M AND `count`>=N
おおおおお、まさにこれです!
ありがとうございます。