私はサイト上の項目のリストを持っています。各項目にはいくつかのカテゴリが付いています。これらのカテゴリを映画ジャンルと呼びましょう。高度な検索では、好きなジャンルのボックスにチェックを入れ、選択したジャンルのANYに一致する映画のリストを吐き出します。MySQL IN節をすべてを含む(ORの代わりに)
私はこのようなクエリがある:
AND column IN ('5', '8', '9')
ここでの問題は、あなたが「アニメーション」と「恐怖」を選択した場合、あなたがディズニーの漫画(「アニメーション」)の束とSAWシリーズを取得することです("ホラー")。
検索をすべてを包括的にしたいので、選択したすべてのジャンルに一致する結果しか返されないため、「アニメーション」と「ホラー」の両方がマークされたアイテムが返されます。
item_idとcategory_idのペアは別のテーブルに格納されます。したがって、ID 55の映画の場合は4つのジャンルがあるため、item_id = 55の4つの行があり、category_idは4つのカテゴリIDと同じです。
いいえ、列は1つのだけ値が含まれています。 1はどのようにして1、2、3と同じようになりましたか? – Kleinux
この状態がどうなるか説明できますか? '(column = 5 AND column = 8 AND column = 9)' – RichardTheKiwi
@kleinuxこれらは例であり、実際にはアプリケーションによって生成される可能性のあるパラメータであると仮定します。 – jzd