在 Python 中使用 MySQL 存储过程实现复杂查询

2023-04-05 00:00:00 python 查询 存储过程

要在 Python 中使用 MySQL 存储过程实现复杂查询,需要先连接到 MySQL 数据库,然后使用 Python 的 MySQL 连接库来创建存储过程。以下是一个示例代码:

import mysql.connector

# 连接数据库
cnx = mysql.connector.connect(user='user', password='password',
                              host='localhost', database='database')

# 创建存储过程
cursor = cnx.cursor()

create_proc = """
CREATE PROCEDURE complex_query(IN keyword VARCHAR(255))
BEGIN
SELECT id, title, body FROM posts
WHERE title LIKE CONCAT('%', keyword, '%')
OR body LIKE CONCAT('%', keyword, '%')
ORDER BY created_at DESC;
END;
"""

cursor.execute(create_proc)

# 调用存储过程
call_proc = "CALL complex_query('pidancode.com')"
cursor.execute(call_proc)

# 处理结果集
for result in cursor:
    print(result)

# 关闭连接
cursor.close()
cnx.close()

这个示例代码演示了如何创建一个存储过程,在其中执行一个复杂的查询,并返回结果集。其中,存储过程接受一个关键字参数,用于在标题和正文中进行模糊搜索,返回最新的帖子。在调用存储过程时,可以将关键字作为参数传递,然后处理返回的结果集。

相关文章