- ベストアンサー
複数条件検索
素人質問で申し訳ありません。 複数条件で、視認性を上げるためにINを使ったりしますが INはOR検索ですよね、このような感じのAND条件を書く方法はないでしょうか? field=1 AND field=2 AND field=3 ↓ ○○ (1,2,3) のように書きたいのです。 お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そういうのは書き方があります。 //準備 create table hoge (id int,sub_key int,item_id int); insert into hoge values (1,1,3),(2,1,4),(3,1,5), (4,2,3),(5,2,4), (6,3,3),(7,3,3),(8,3,4),(9,3,4), (10,4,3),(11,4,4),(12,4,4),(13,4,5),(14,4,6); さてここで検証するとsub_key=1は合致するのでOK、同2は2個しかないのでNG、 同3は見た目上4個あるけどユニークなものが2個しかないのでNG、 同4はかぶってたり余計なデータがあるけど合致するのでOK //表示 select sub_key from hoge where item_id in (3,4,5) group by sub_key having count(distinct item_id)=3
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>field=1 AND field=2 AND field=3 考えてみてくださいfieldが1かつ2かつ3である可能性はゼロです。 そもそもそのロジックは間違っているので、そのような書き方はできません
補足
すみません、説明が下手でした>< id, sub_key, item_id 1 1 3 2 1 4 3 1 5 のようなテーブルがあった場合に、3も4も5も満たすsub_keyを取得したいのです。 INだと3だけでもHITしてしまうので、3,4,5のレコードがあった場合に取得する方法 をご教示ねがえれば幸いです
お礼
素晴らしい! ありがとうございます、勉強になりました!^ー^