0

id、numbers の 2 つのフィールドを持つテーブルがあります。

同じ配列値 (1、2、5、6 など) がテーブルに既に存在するかどうかを確認したいのですが、それらは同じ 1 番目の行番号 (id) を持っている必要があります。

私はこのSQLクエリを試しましたが、これは同じIDがあるかどうかをチェックしません:

SELECT id, numbers FROM `table` WHERE numbers IN (1,2,5,6) AND id = id

「id = id」が機能しないことはわかっていますが、意味がわかるように投稿しました。

4

1 に答える 1

1
SELECT id, COUNT(*) num_count, GROUP_CONCAT(numbers ORDER BY numbers) all_numbers
FROM `table`
WHERE numbers IN (1, 2, 5, 6)
GROUP BY id

4 つの数字すべてを持つものだけを見たい場合は、以下を追加します。

HAVING num_count = 4

これら 4 つの数字のみを持つ ID が必要な場合は、次を使用します。

SELECT id, COUNT(*) all_count, SUM(numbers IN (1, 2, 5, 6)) in_count
FROM `table`
GROUP BY id
HAVING all_count = in_count
于 2013-06-30T08:06:44.413 に答える