利用python对mysql表做全局模糊搜索并分页实例

针对“利用python对mysql表做全局模糊搜索并分页实例”,我分为以下几个步骤进行讲解:

  1. 连接mysql数据库

可以使用Python的第三方库pymysql来连接mysql数据库。首先需要安装该库,可以使用以下命令进行安装:

pip install pymysql

连接mysql数据库的代码如下:

import pymysql

# 连接数据库
db = pymysql.connect(host="localhost", user="username", password="password", database="db_name", charset="utf8mb4")

# 创建游标对象
cursor = db.cursor()

这里需要替换数据库的具体信息,包括主机名、用户名、密码、数据库名。

  1. 数据表的全局模糊搜索

可以使用LIKE语句进行全局模糊搜索。例如,我们搜索某个表中name列中包含“test”的所有记录,可以使用以下代码:

# 模糊搜索
keyword = "test"
sql = f"SELECT * FROM table_name WHERE name LIKE '%{keyword}%'"
cursor.execute(sql)
result = cursor.fetchall()

这里需要替换具体的表名和列名。

  1. 分页

分页可以使用LIMIT语句进行实现。例如,我们将搜索结果分成每页10条记录,显示第2页的结果,可以使用以下代码:

# 分页
page_size = 10
page_num = 2
start = (page_num - 1) * page_size
sql = f"SELECT * FROM table_name WHERE name LIKE '%{keyword}%' LIMIT {start}, {page_size}"
cursor.execute(sql)
result = cursor.fetchall()

这里需要替换具体的表名和列名。

  1. 完整代码示例
import pymysql

# 连接数据库
db = pymysql.connect(host="localhost", user="username", password="password", database="db_name", charset="utf8mb4")

# 创建游标对象
cursor = db.cursor()

# 模糊搜索
keyword = "test"
sql = f"SELECT * FROM table_name WHERE name LIKE '%{keyword}%'"

# 分页
page_size = 10
page_num = 2
start = (page_num - 1) * page_size
sql += f" LIMIT {start}, {page_size}"

# 执行sql语句
cursor.execute(sql)
result = cursor.fetchall()

# 打印结果
for row in result:
    print(row)

# 关闭游标
cursor.close()

# 关闭数据库连接
db.close()
  1. 示例说明

假设有以下数据表:

CREATE TABLE table_name (
  id INT PRIMARY KEY NOT NULL,
  name VARCHAR(255) NOT NULL
);

INSERT INTO table_name (id, name) VALUES (1, 'test1');
INSERT INTO table_name (id, name) VALUES (2, 'hello');
INSERT INTO table_name (id, name) VALUES (3, 'test2');
INSERT INTO table_name (id, name) VALUES (4, 'world');
INSERT INTO table_name (id, name) VALUES (5, 'test3');

如果我们搜索包含关键字“test”的记录,并显示第2页的结果,可以使用以下代码:

import pymysql

# 连接数据库
db = pymysql.connect(host="localhost", user="username", password="password", database="db_name", charset="utf8mb4")

# 创建游标对象
cursor = db.cursor()

# 模糊搜索
keyword = "test"
sql = f"SELECT * FROM table_name WHERE name LIKE '%{keyword}%'"

# 分页
page_size = 2
page_num = 2
start = (page_num - 1) * page_size
sql += f" LIMIT {start}, {page_size}"

# 执行sql语句
cursor.execute(sql)
result = cursor.fetchall()

# 打印结果
for row in result:
    print(row)

# 关闭游标
cursor.close()

# 关闭数据库连接
db.close()

这里的搜索结果为:

(5, 'test3')

因为只有一条符合条件的记录,并且这条记录在第2页。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用python对mysql表做全局模糊搜索并分页实例 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • Python基础之文件读取的讲解

    对于Python基础中文件读取的讲解,在这里我会分为三个方面进行讲解:文件操作模式、文件读取的基本方法和使用示例。 文件操作模式 在Python中,文件打开时需要指定一个文件操作模式(mode),不同的操作模式代表不同的文件读写方式。 文件操作模式的常见取值如下: r : 只读模式(默认模式),打开文件后只能读取,不能写入或者修改。 w : 只写模式,打开文…

    python 2023年6月2日
    00
  • Python3.5 处理文本txt,删除不需要的行方法

    要删除文本文件中的某些行,可以使用Python3.5的标准库中的fileinput模块和re模块进行正则表达式匹配。以下是一个完整的攻略,分为以下步骤: 步骤1:安装Python3.5在开始之前,我们需要确认在计算机上已经安装了Python3.5版本。如果没有安装,请先从官方网站(https://www.python.org/downloads/)下载并安装…

    python 2023年6月3日
    00
  • Python获取excel内容及相关操作代码实例

    下面是关于如何使用Python获取Excel文件内容以及相关操作的完整实例教程。 准备工作 在代码实现之前,需要先安装必要的库。在本文中,我们使用pandas和openpyxl库用于Excel文件的读取和写入。可以通过以下命令进行安装: pip install pandas openpyxl 接下来,我们将演示如何使用Python读取和写入Excel文件。 …

    python 2023年5月13日
    00
  • python datetime 和时间戳互相转换问题

    下面详细讲解“Python Datetime和时间戳互相转换问题”的完整攻略。 Python Datetime的定义 在Python中,datetime模块可以用于处理date(日期)和time(时间)中的各种问题。它提供了一个datetime类,支持日期和时间的算术和比较操作。在使用datetime模块过程中,我们经常需要进行时间戳与datetime对象之…

    python 2023年6月2日
    00
  • Django中模型Model添加JSON类型字段的方法

    下面是详细讲解“Django中模型Model添加JSON类型字段的方法”的攻略: 1. JSON类型字段简介 在Django中,模型的字段类型有多种,比如字符型(CharField)、文本型(TextField)、日期型(DateField)等等,但是在Django 3.1新增了JSON类型字段(JSONField),它可以用于存储和操作JSON格式的数据。…

    python 2023年6月3日
    00
  • selenium+python实现基本自动化测试的示例代码

    下面将详细讲解如何使用Selenium和Python实现基本的自动化测试,包含了安装Selenium和驱动、环境搭建、示例代码等。 安装Selenium和驱动 首先,我们需要安装Python,建议安装3.x版本,可以从Python官网下载安装文件。 安装pip。pip是Python包管理工具,用于安装和管理Python的第三方库。如果你已经安装了Python…

    python 2023年5月19日
    00
  • python使用参数对嵌套字典进行取值的方法

    讲解“python使用参数对嵌套字典进行取值的方法”的完整攻略,具体如下: 1. 首先了解嵌套字典的结构 在python中,嵌套字典可以理解为是多层级的连续字典,每层字典都可以包含一个或多个键值对。例如下面的代码演示了一个简单的嵌套字典结构: person = { ‘name’: ‘张三’, ‘age’: 18, ‘city’: ‘北京’, ‘languag…

    python 2023年5月13日
    00
  • python实现定时发送qq消息

    当然,以下是详细讲解 “Python实现定时发送QQ消息”的完整攻略。 1. Python环境准备 首先,我们需要确保已经安装好了Python环境。Python环境可以从官方网站或者Anaconda官网中下载合适的版本。 2. 安装QQ机器人框架 我们可以使用针对QQ的机器人框架来实现定时发送QQ消息。目前市面上比较流行的QQ机器人框架有QBot和Smart…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部