我的表中有一个名为iciphers_id
的字段。每个iciphers_id
在该表中都有多条记录。
我想获取某些特定iciphers_id
的记录。以下查询获取以下ID的所有记录。
SELECT * FROM MYTABLE WHERE iciphers_id IN (200,201,202)
我想编写查询以获取特定iciphers_id
的所有记录,但每个iciphers_id
只记录10条记录。我试过了
SELECT * FROM MYTABLE WHERE iciphers_id IN (200,201,202) LIMIT 10.
以上查询只返回10条记录,我希望每条iciphers_id
得到10条记录,即200,201,202。
注意:我刚刚在上面的查询中添加了三个iciphers_id
,它们可以超过那个(数百个)。
Iciphers id可以超过百。也许我应该在查询中使用where iciphers_id >= 200 AND Iciphers_id <= 300
答案 0 :(得分:-1)
你可以尝试一下。
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 ;
答案 1 :(得分:-1)
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