比如表中有如下的30行数据,
但只想取出第二页的数据(假设一页10行,即从第11行开始取,取10行)
那么只要在查询语句后面使用limit
关键字即可
语法:limit 开始记录行数, 取出行数
,
要注意的是,mysql的开始记录行数是从0开始的,所以要减1,这里为limit 10, 10
命令行下:
select * from user limit 10, 10;
效果:
用php的话:
// 连接数据库,如果失败就执行die
$con = mysqli_connect('127.0.0.1', 'root', 'root', 'test_db') or die('数据库连接失败:' . mysqli_error($con));
// page为要查看的页数
$page = 2;
// page_size为每页的记录数
$page_size = 10;
// record_start即实际开始取的记录行号
$record_start = ($page - 1) * 10 - 1;
$sql = 'select * from user';
// 其实是可以直接写成一行的,这里只是为了能直观看到
$sql .= " limit $record_start, $page_size;";
$ret = mysqli_query($con, $sql) or die('无法读取数据: ' . mysqli_error($con));
while($row = mysqli_fetch_array($ret, MYSQLI_ASSOC)) {
echo "uid: {$row['uid']}, ".
"name: {$row['name']}\n";
}
mysqli_close($con);
输出结果