gpt4 book ai didi

python - 如何使用 qmark 语法和 oursql Python 库编写 MySQL LIKE 子句?

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:58 26 4
gpt4 key购买 nike

我正在使用 oursql Python 库与 MySQL 数据库对话。我想编写代码来按姓名或电子邮件地址搜索用户。这是我目前的代码:

query = get_query()
cursor.execute("""
SELECT *
FROM users
WHERE full_name LIKE '%?%'
OR email LIKE '%?%';""", (query, query))

此代码抛出异常:

ProgrammingError:需要 0 个参数,给定 2 个

显然解析器认为问号是单引号字符串的一部分,因此没有进行替换。关于如何解决此问题的任何想法?

最佳答案

LIKE 参数中的 % 是您要传递给 DB-API 模块的 execute 方法的数据的一部分,因此它们需要成为您为占位符传递的参数的一部分,而不是 SQL 查询本身的一部分。例如:

query = '%%%s%%' % (get_query(),)
cursor.execute("""
SELECT *
FROM users
WHERE full_name LIKE ?
OR email LIKE ?;""", (query, query))

关于python - 如何使用 qmark 语法和 oursql Python 库编写 MySQL LIKE 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com