我有一個產品ID列表,我想知道哪些訂單包含所有這些產品。 Orders表的結構是這樣的:如何查找列表/集是否包含在另一個列表中
order_id | product_id
----------------------
1 | 222
1 | 555
2 | 333
很顯然,我可以在PHP一些循環,但我不知道是否有一種優雅的方式在MySQL做純粹做。 我理想中的幻想的查詢會是這樣的:
SELECT order_id
FROM orders
WHERE (222,555) IN GROUP_CONCAT(product_id)
GROUP BY order_id
究竟有沒有前途,或者我應該去閱讀托爾金? :)另外,出於好奇,如果不可能在MySQL中,是否有任何其他數據庫具有此功能?
這stringly類型編程:'(222555)的GROUP_CONCAT(產品) ',並且通常不鼓勵。使用適當的基於集合的方法 –
不鼓勵?我不認爲這會執行,更不用說產生任何有意義的結果。我相信我很清楚這是一個'幻想'的問題,只是爲了讓我更好地瞭解我在找什麼。 – Amati
是的,我知道它甚至不是一個有效的構造。我明白了,我只是認爲你真的想用group_concat ;-) –