比如表中有如下的30行数据,
mysql分页查询
但只想取出第二页的数据(假设一页10行,即从第11行开始取,取10行)

那么只要在查询语句后面使用limit关键字即可
语法:limit 开始记录行数, 取出行数
要注意的是,mysql的开始记录行数是从0开始的,所以要减1,这里为limit 10, 10

命令行下:

select * from user limit 10, 10;

效果:
mysql分页查询

用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);

输出结果
mysql分页查询

相关文章: