Mysql 如何使用limit查询特定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

我的表中有一个名为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 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