所以我有這樣的MySQL凡,極限輸出
SELECT * FROM table WHERE id IN (1,2,3) LIMIT 10
查詢是否有可能限制輸出的數量每個數組元素像
SELECT * FROM table WHERE id 1 LIMIT 10
SELECT * FROM table WHERE id 2 LIMIT 10
SELECT * FROM table WHERE id 3 LIMIT 10
所以我有這樣的MySQL凡,極限輸出
SELECT * FROM table WHERE id IN (1,2,3) LIMIT 10
查詢是否有可能限制輸出的數量每個數組元素像
SELECT * FROM table WHERE id 1 LIMIT 10
SELECT * FROM table WHERE id 2 LIMIT 10
SELECT * FROM table WHERE id 3 LIMIT 10
是的,你可以做它使用變量:
SELECT *
FROM (
SELECT *,
@seq := IF(id = @id, @seq + 1,
IF(@id := id, 1, 1)) AS seq
FROM table
CROSS JOIN (SELECT @seq := 0, @id := 0) AS vars
WHERE id IN (1,2,3)
ORDER BY id) AS t
WHERE t.seq <= 10
完美。謝謝 –
如果你害怕的MySQL變量(我),你也可以使用一個UNION
曲ery:
(SELECT * FROM table WHERE id = 1 LIMIT 10)
UNION ALL
(SELECT * FROM table WHERE id = 2 LIMIT 10)
UNION ALL
(SELECT * FROM table WHERE id = 3 LIMIT 10)
IN數組是動態生成的並且處理非常大的數據集。這個查詢會有性能瓶頸? –
然後@Giorgos的答案可能是你在找什麼。 –
請注意,沒有ORDER BY的LIMIT是相當無意義的。 – Strawberry