利用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如何实现向上取整的攻略。 使用math.ceil函数实现向上取整 在Python内置的math模块中,提供了一个名为ceil()的函数,该函数通过向上取整,返回一个整数。 示例一: import math x = 3.14 y = math.ceil(x) print(y) # 输出结果为4 在代码中,首先通过import语句导入了ma…

    python 2023年5月19日
    00
  • 使用Python实现简单的爬虫框架

    下面我会详细讲解如何使用Python实现简单的爬虫框架,在整个过程中,我们将会遵循一个完整的攻略步骤来进行。这里分为以下几个部分来讲解: 确定目标 & 安装必要的库 首先,我们需要明确爬取的目标网站,并且选择一个适合的爬虫库。在Python中,比较常用的爬虫库有Requests和BeautifulSoup4。前者常用于发送HTTP请求并获得响应,后者…

    python 2023年5月14日
    00
  • python网络爬虫精解之正则表达式的使用说明

    Python网络爬虫精解之正则表达式的使用说明 正则表达式是一种强大的工具,可以用于匹配、查找和替换文本中的模式。在Python网络爬虫中,正则表达式常用于解析HTML页面,提取所需的数据。本攻略将详细讲解Python中的正则表达式的基本用法、常用符号和例应用。 基本用法 Python中使用re模块提供的函数来操作正则表达式。模块提供了常用函数: re.se…

    python 2023年5月14日
    00
  • python 函数中的参数类型

    Python 函数中的参数类型 在 Python 函数中,可以接受多种类型的参数,包括必需参数、默认参数、关键字参数和可变参数。每种不同类型的参数都有自己的特点和使用方法。 必需参数 必需参数是函数定义中的普通参数,也称作“位置参数”,必须按照顺序传递,且在调用函数时必须传递指定数量的参数。 以下是一个求和函数的例子,需要输入两个参数: def add(x,…

    python 2023年6月5日
    00
  • 基于Python 的语音重采样函数解析

    基于Python 的语音重采样函数解析 什么是语音重采样? 语音重采样是一种改变语音采样率的技术,可以降低或提高语音文件的采样率,用于修改语音的频率、音高、音调等特征。 重采样函数 resample Python语音信号处理库中,Scipy模块提供了一个简便的语音重采样函数,名为 resample 。 函数介绍 resample 用于将语音的采样率从原始值改…

    python 2023年5月19日
    00
  • Python正则表达式:难以理解结果[重复]

    【问题标题】:Python regex: having trouble understanding results [duplicate]Python正则表达式:难以理解结果[重复] 【发布时间】:2023-04-04 06:50:02 【问题描述】: 我有一个需要写入磁盘的数据框,但 pyspark 不允许任何这些字符 ,;{}()\\n\\t= 在作为镶…

    Python开发 2023年4月6日
    00
  • python删除文件、清空目录的实现方法

    下面是Python删除文件、清空目录的实现方法的详细攻略。 删除文件 Python中删除文件可以使用os模块中的os.remove()函数。它接收文件路径作为参数,删除该路径下的文件。 示例: import os file_path = ‘./test.txt’ os.remove(file_path) # 删除文件 需要注意的是,当被删除的文件不存在时,o…

    python 2023年6月2日
    00
  • 使用python爬取微博数据打造一颗“心”

    使用Python爬取微博数据打造一颗“心” 在本攻略中,我们将使用Python编写程序,通过爬取微博数据的方式构建一颗“心”。接下来,将会详细讲解这个过程,包括如何获取微博数据、如何使用Python处理数据、如何使用Python绘制图形。 获取微博数据 获取微博数据需要一定的技术知识和工具。我们需要使用Python中的第三方模块来实现数据的获取。 在本次攻略…

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