Mysql 如何使用limit查询特定ID的多条记录
我的表中有一个名为iciphers\u id的字段。每个iciphers\u id在该表中有多条记录 我想获取一些特定iciphers\u id的记录。下面的查询获取以下id的所有记录Mysql 如何使用limit查询特定ID的多条记录,mysql,Mysql,我的表中有一个名为iciphers\u id的字段。每个iciphers\u id在该表中有多条记录 我想获取一些特定iciphers\u id的记录。下面的查询获取以下id的所有记录 SELECT * FROM MYTABLE WHERE iciphers_id IN (200,201,202) 我想写一个查询来获取这些特定iciphers\u id的所有记录,但每个iciphers\u id有10条记录。我已经尝试过了 SELECT * FROM MYTABLE WHERE icipher
SELECT * FROM MYTABLE WHERE iciphers_id IN (200,201,202)
我想写一个查询来获取这些特定iciphers\u id的所有记录,但每个iciphers\u id有10条记录。我已经尝试过了
SELECT * FROM MYTABLE WHERE iciphers_id IN (200,201,202) LIMIT 10.
上面的查询只返回10条记录,我想为每个iciphers_id(200201202)获取10条记录
注意:我刚刚在上面的查询中添加了三个iciphers\u id,它们可以超过数百个
Iciphers id可以超过100个。也许我应该在查询中使用between,比如where iciphers\u id>=200和iciphers\u id,您可以试试
SELECT *
FROM
(SELECT * ,
@iciphers_id_rank := IF(@current_iciphers_id = iciphers_id, @iciphers_id_rank + 1, 1) AS iciphers_id_rank,
@current_iciphers_id := iciphers_id
FROM MYTABLE WHERE iciphers_id IN (200,201,202)
ORDER BY iciphers_id ASC
) temp
WHERE iciphers_id_rank >= 1 AND iciphers_id_rank <= 10 ;
可以超过3个或将超过3个?这是什么决定的?它是不同的一切,是增量的吗?@Asfandyar Khan一个表中每个iciphers\u id将存在多少条记录?它们可以是多条记录,对于单个iciphers\u id,它们可以是10到100000条。尝试将限制设置为10',在clause和delete'top 10'之后,如果SQL语法有错误,请删除它们;请告诉我们您使用的是什么,sql server?postgresql?我正在使用mysql服务器我更新了答案,你现在可以试试,我想它会按照你的要求工作。它不再工作了,它返回50000多条记录,而不是返回100k+条记录。我希望我的查询只返回30条以上3个iciphers\u id的记录
select
-- ids.iciphers_id, -- this is not necessary
TT.*
from
( select distinct iciphers_id
from MYTABLE
where iciphers_id > 200 and iciphers_id < 300
) ids
cross apply
(
select MT.*
from MYTABLE MT
where MT.iciphers_id = ids.iciphers_id
limit 10
) TT