MySQL在哪里,限制输出
所以我有一个类似的问题MySQL在哪里,限制输出,mysql,limit,where-in,Mysql,Limit,Where In,所以我有一个类似的问题 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 *,
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
是的,您可以使用变量执行此操作:
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变量,你也可以使用联合查询:
如果你害怕MySQL变量,你也可以使用联合查询:
IN数组是动态生成的,并使用非常大的数据集。此查询可能存在性能瓶颈?那么@Giorgos答案可能就是您要查找的答案。IN数组是动态生成的,并且使用非常大的数据集。此查询可能存在性能瓶颈?那么@Giorgos答案可能就是您要查找的答案。请注意,没有ORDER BY的限制是毫无意义的。请注意,没有ORDER BY的限制是毫无意义的。