我的表结构如下

id        int
name      varchar 50
catid     int

样本数据
id                     name                      catid
---------------------------------------------------------
 1                     AAA                         1
 2                     BBB                         1
 3                     CCC                         1
 4                     DDD                         2
 5                     EEE                         2
 6                     FFF                         1
 7                     GGG                         2
 8                     HHH                         2
 9                     III                         1

我想要这样的查询为分页中的每一页从每个类别中获取一行
第一页我需要数据
id                     name                      catid
---------------------------------------------------------
 1                     AAA                         1
 4                     DDD                         2

第二页我需要数据
id                     name                      catid
---------------------------------------------------------
 2                     BBB                         1
 5                     EEE                         2

第三页我需要数据
id                     name                      catid
---------------------------------------------------------
 3                     CCC                         1
 7                     GGG                         2

等等。
我怎样才能做到这一点。

最佳答案

这对我很有用(Linux上的MySQL 5.1)

SELECT id, name, catid FROM
   (SELECT id, name, catid FROM t WHERE catid=1 LIMIT 2,1) AS t1
   UNION (SELECT id, name, catid FROM t WHERE catid=2 LIMIT 2,1)
   ORDER BY catid

限制中的2是页码。因此,这一个的输出是为第二页。

关于mysql - 分页中每个页面的每个类别仅获得1条记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6222401/

10-16 08:19