我的表格结构如下
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
等等。
我怎样才能做到这一点。
答案 0 :(得分:1)
SELECT * FROM table WHERE catid = 1 LIMIT :pageno 1
SELECT * FROM table WHERE catid = 2 LIMIT :pageno 1
我认为,这将是最简单的查询以获得所需的结果。
答案 1 :(得分:0)
是的,正如Pradeep所说,LIMIT子句是在MySQL中最简单的方法。您仍然需要在PHP中进行一些编码,以便为您的用户生成可点击的页码。
答案 2 :(得分:0)
这对我有用(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是页码。因此,这个的输出是第二页。