-4

動的属性を格納するテーブルがあります

構造は次のようになります。

id    itemid  value
----  ------  ------
1     1       A
2     2       B
3     3       C
4     1       B
5     2       C

したがって、多値パラメーターを渡すと

  • 値を渡すA B結果 itemid1
  • 値を渡すB結果 itemid1 2
  • 合格値B C結果2

この sql はどのように記述できますか? ちなみに私はmysqlを使っています

4

2 に答える 2

2

制約(itemid, value)があると仮定します:UNIQUE

SELECT itemid
FROM tableX
WHERE value IN ('A', 'B')       -- the list
GROUP BY itemid
HAVING COUNT(*) = 2 ;           -- the size of the list
于 2013-03-20T14:58:11.367 に答える
1

SQL INTERSECTクエリを使用して、探している動作を取得できるはずです。以下に簡単な例を示します。

SELECT itemid FROM mytable WHERE 値 = 'A' INTERSECT SELECT itemid FROM mytable WHERE 値 = 'B'

于 2013-03-20T14:15:32.847 に答える