随着数据的不断增长,我们需要更加高效的方式来搜索和获取数据。而全局模糊搜索是一种常见的搜索方式,可以快速地找到包含指定关键词的数据。而在数据量较大的情况下,分页也是必不可少的功能。本文将介绍如何利用python对mysql表做全局模糊搜索并分页实例。
1.准备工作
在开始之前,我们需要先准备好以下工作:
- 安装mysql-connector-python库
- 创建一个mysql数据库和表,并插入一些数据
使用pip install mysql-connector-python安装mysql-connector-python库。
在mysql中创建一个名为test_db的数据库,并创建一个名为test_table的表,表结构如下:
CREATE TABLE test_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在表中插入一些数据:
INSERT INTO test_table (name, age) VALUES ('张三', 20);
INSERT INTO test_table (name, age) VALUES ('李四', 25);
INSERT INTO test_table (name, age) VALUES ('王五', 30);
INSERT INTO test_table (name, age) VALUES ('赵六', 35);
2.实现全局模糊搜索
接下来,我们需要实现全局模糊搜索功能。具体实现方法如下:
- 获取用户输入的
【关键词】- 构造sql语句,使用LIKE关键词进行模糊搜索
- 执行sql语句,并获取结果
代码实现如下:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='root', password='root', host='localhost', database='test_db')
cursor = cnx.cursor()
# 获取用户输入的关键词
keyword = input("请输入关键词:")
# 构造sql语句
query = f"SELECT * FROM test_table WHERE name LIKE '%{keyword}%'"
# 执行sql语句
cursor.execute(query)
# 获取结果
result = cursor.fetchall()
print(result)
上述代码中,我们使用input函数获取用户输入的关键词,使用LIKE关键词进行模糊搜索,并使用fetchall函数获取所有结果。
3.实现分页功能
接下来,我们需要实现分页功能。具体实现方法如下:
- 获取用户输入的页码和每页显示的数量
- 构造sql语句,使用LIMIT和OFFSET关键词进行分页查询
- 执行sql语句,并获取结果
代码实现如下:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='root', password='root', host='localhost', database='test_db')
cursor = cnx.cursor()
# 获取用户输入的页码和每页显示的数量
page = int(input("请输入页码:"))
page_size = int(input("请输入每页显示数量:"))
# 构造sql语句
offset = (page - 1) * page_size
query = f"SELECT * FROM test_table LIMIT {page_size} OFFSET {offset}"
# 执行sql语句
cursor.execute(query)
# 获取结果
result = cursor.fetchall()
print(result)
上述代码中,我们使用input函数获取用户输入的页码和每页显示的数量,使用LIMIT和OFFSET关键词进行分页查询,并使用fetchall函数获取所有结果。
4.实现全局模糊搜索和分页功能的结合
最后,我们将全局模糊搜索和分页功能结合起来,实现全局模糊搜索并分页的功能。具体实现方法如下:
- 获取用户输入的关键词、页码和每页显示的数量
- 构造sql语句,使用LIKE关键词进行模糊搜索,同时使用LIMIT和OFFSET关键词进行分页查询
- 执行sql语句,并获取结果
代码实现如下:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='root', password='root', host='localhost', database='test_db')
cursor = cnx.cursor()
# 获取用户输入的关键词、页码和每页显示的数量
keyword = input("请输入关键词:")
page = int(input("请输入页码:"))
page_size = int(input("请输入每页显示数量:"))
# 构造sql语句
offset = (page - 1) * page_size
query = f"SELECT * FROM test_table WHERE name LIKE '%{keyword}%' LIMIT {page_size} OFFSET {offset}"
# 执行sql语句
cursor.execute(query)
# 获取结果
result = cursor.fetchall()
print(result)
上述代码中,我们将全局模糊搜索和分页功能结合在了一起,用户可以同时输入关键词、页码和每页显示的数量,实现全局模糊搜索并分页的功能。
客服热线:0731-85127885
违法和不良信息举报
举报电话:0731-85127885 举报邮箱:tousu@csai.cn
优草派 版权所有 © 2024