MySQL中分页查询的使用方法(mysql中分页关键字)

MySQL中分页查询的使用方法

在处理较大量数据时,分页查询是必不可少的功能。MySQL作为一款轻量级数据库软件,也提供了方便的分页查询功能。本文将介绍MySQL中分页查询的使用方法,并通过代码演示其具体实现。

1. LIMIT关键字

MySQL中实现分页查询,需要用到LIMIT关键字。LIMIT可以指定查询结果的起始位置和要返回的记录数。其语法如下:

SELECT * FROM table_name LIMIT start, number

其中,“start”表示从哪一行开始返回记录,“number”表示返回的记录数。需要注意的是,“start”的值从0开始计算。

在实际使用中,我们通常会用到两个变量来实现分页功能:$page和$limit。其中,$page表示当前页数,$limit表示每页显示的记录数。通过以下代码可以获取查询结果的起始位置和要返回的记录数:

“`php

$page = isset($_GET[‘page’]) ? intval($_GET[‘page’]) : 1;

$limit = isset($_GET[‘limit’]) ? intval($_GET[‘limit’]) : 10;

$start = ($page – 1) * $limit;


2. 分页查询示例

为了演示MySQL中如何使用LIMIT进行分页查询,我们将创建一个名为“students”的数据表。表中包含3个字段:ID、Name、Age。具体创建方式如下:

```sql
CREATE TABLE students (
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Age INT NOT NULL
);

在表中插入20条测试数据:

“`sql

INSERT INTO students(Name, Age) VALUES

(‘张三’, 18),(‘李四’, 19),(‘王五’, 20),(‘赵六’, 21),

(‘钱七’, 22),(‘张八’, 23),(‘李九’, 24),(‘王十’, 25),

(‘赵十一’, 26),(‘钱十二’, 27),(‘张十三’, 28),(‘李十四’, 29),

(‘王十五’, 30),(‘赵十六’, 31),(‘钱十七’, 32),(‘张十八’, 33),

(‘李十九’, 34),(‘王二十’, 35),(‘赵二十一’, 36),(‘钱二十二’, 37);


接着,我们可以通过以下代码实现分页查询:

```php

//1.连接到MySQL数据库
$pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8", 'root', '123456');
//2.获取查询条件(即查询关键词)
$keyword = isset($_GET['keyword']) ? $_GET['keyword'] : '';
//3.获取当前页数和每页显示的记录数
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$limit = isset($_GET['limit']) ? intval($_GET['limit']) : 5;

//4.获取查询结果的起始位置
$start = ($page - 1) * $limit;
//5.执行查询语句
$sql = "SELECT * FROM students WHERE Name LIKE :keyword ORDER BY ID ASC LIMIT :start, :limit";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':keyword', "%$keyword%", PDO::PARAM_STR);
$stmt->bindValue(':start', $start, PDO::PARAM_INT);
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
//6.输出查询结果
foreach ($result as $row) {
echo $row['ID'] . "\t" . $row['Name'] . "\t" . $row['Age'] . "
";
}

//7.输出分页导航栏
$total = $pdo->query("SELECT COUNT(*) FROM students WHERE Name LIKE '%$keyword%'")->fetchColumn();
$total_page = ceil($total / $limit);
echo "

";
echo "总共有{$total}条记录,每页显示{$limit}条,共{$total_page}页

";
if ($page > 1) {
echo "上一页 ";
}
for ($i = 1; $i
if ($page == $i) {
echo "$i ";
} else {
echo "$i ";
}
}
if ($page
echo "下一页 ";
}
?>

通过访问index.php页面,即可实现简单的分页查询功能。例如,如果需要查询“张”开头的名字,并且每页显示5条记录,则可以使用以下URL进行访问:

index.php?keyword=张&page=1&limit=5

该URL将返回第1页,“张”开头的5条记录。如果需要访问下一页,则将“page”参数改为“2”。


数据运维技术 » MySQL中分页查询的使用方法(mysql中分页关键字)