可以告訴我創建以下查詢的最佳做法嗎?在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
獨特
可以告訴我創建以下查詢的最佳做法嗎?在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
獨特
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
你有沒有試着用
SELECT data FROM posts WHERE owner_id IN (x,y)
中語句可以從一個數組:)生成
這將返回'通過ATLEAST'x'或回答'y如果data'它擁有''owner_id'。 –