如何从数据库和接下来的100中获得前100个值,依此类推?

时间:2011-12-01 23:46:27

标签: php mysql database pagination

我有一个简单的数据库来存储一些电子邮件,有没有办法从100个电子邮件的组中获取数据库中的电子邮件???

这是数据库结构

Table structure for table `emails`
--

CREATE TABLE IF NOT EXISTS `emails` (
  `email` varchar(100) NOT NULL,
  `ip` varchar(15) NOT NULL,
  `timestamp` datetime NOT NULL,
  PRIMARY KEY  (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

理想的结果是获得前100封电子邮件,做一些事情,然后获得下一封100封,然后做其他事情。

谢谢,对不起我的英文

2 个答案:

答案 0 :(得分:5)

LIMIT 100

http://dev.mysql.com/doc/refman/5.1/en/select.html#id827984

然后是下一个,LIMIT 100, 100,然后是LIMIT 200, 100,依此类推。

第一个数字(当有两个时)是偏移量。

答案 1 :(得分:0)

使用SQL LIMIT <offset>, <row_count>语法通过SQL进行分页。

假设您要在网页上显示这些结果,我还建议您使用像PEAR::Pager这样的PHP库来帮助您。有一个很好的教程here

有一点需要注意,出于性能原因,您应该确保在分页查询中使用ORDER BY并且使用索引。 MySQL Performance博客有一个很好的explanation