2013-07-17 84 views
1

可以告訴我創建以下查詢的最佳做法嗎?在MySQL中將相同字段與多個值進行比較選擇

比方說,我有一個表3個字段id, owner_id, data。我必須做一個SELECT查詢來返回很多人擁有的數據。

我不能使用OR SELECT data FROM posts WHERE owner_id = x OR owner_id = y,因爲當我必須執行查詢時,最終可能會有200個所有者ID。如果data不是每個owner_id獨特

回答

1
SELECT data 
FROM posts 
WHERE owner_id IN (x, y) 
GROUP BY data 
HAVING COUNT(*) = 2  // number of owners 

DISTINCT關鍵字是必需的。

HAVING COUNT(DISTINCT owner_id) = 2 
1

你有沒有試着用

SELECT data FROM posts WHERE owner_id IN (x,y) 

中語句可以從一個數組:)生成

+0

這將返回'通過ATLEAST'x'或回答'y如果data'它擁有''owner_id'。 –

相關問題