mysql 根据某个字段只取限制数量的数据问题

我限制数据是这样的

产品表
有平台id 产品名称

id ptid name
1 100 产品1
2 100 产品2
3 100 产品3
4 100 产品4
5 100 产品5
6 100 产品6
7 101 产品7
8 101 产品8
9 101 产品9
10 101 产品10
11 101 产品11

如何根据某个平台id 只取这个平台的3条数据(顺序可以随机)

id ptid name
1 100 产品1
2 100 产品2
3 100 产品3
7 101 产品7
8 101 产品8
9 101 产品9

    SELECT id, ptid, name
      FROM (
            SELECT id, ptid, name, 
                   (
                    SELECT COUNT(*) 
                      FROM Table1
                     WHERE ptid = t1.ptid
                       AND id <= t1.id
                   ) AS rn
              FROM Table1 t1
           ) t
     WHERE rn <= 3

select top 3 * from table

根据ptid相同进行判断,和id无关
 select * from (
select a.*,
case when @oldptid=ptid then @lagfield:=@lagfield+1 else @lagfield:=1 end rn,
@oldptid:=ptid
from 你的表名 a,(select @lagfield:=0,@oldptid:='') r
) a where rn<=3

这个肯定要用limit,
select * from table where id=num limit 3;