python - OperationalError:“%”附近:Python 中 sqlite3 的语法错误
问题描述
我sqlite3
在 Python 中使用包并尝试从名为orders
. 我想获取列的值以order_date
18 结尾的varchar
条目(该条目的实际值为“10/20/2018”的列)。
根据类似问题的指导,我构建了如下查询:
sql = """SELECT * FROM orders
WHERE order_date LIKE %s"""
args = ['%' + '18']
c.execute(sql, args)
但我得到了这个:
---------------------------------------------------------------------------
OperationalError Traceback (most recent call last)
<ipython-input-51-e6a345ebe6eb> in <module>
6 args = ['%' + '18']
7
----> 8 c.execute(sql, args)
9 conn.commit()
10
OperationalError: near "%": syntax error
我尝试了多种方式来构建查询,但每次都得到相同的错误。根据我浏览过的其他问题,这应该可行。怎么了?
解决方案
您应该将?
其用作绑定变量的占位符,而不是%s
:
sql = """SELECT * FROM orders
WHERE order_date LIKE ?"""
推荐阅读
- postman - 在 Postman 中创建新请求时可以自动设置变量吗?
- javascript - 在JS中调用2次等待函数
- angular - 在文件上传中将文件对象添加到数组
- oracle - 带有“in 子句”的 Oracle 查询 - 如何加快使用索引?
- node.js - 限制对 Firebase 托管内容的访问
- visual-studio-2017 - VS2017 在保存或输入日期时间格式时自动添加空格
- c# - 在 NUnit 测试中如何模拟 CosmosDB 的 ToQueryDefination
- python - 用 keraregressor 估计多元回归的系数
- angular - 如何在前端响应中传递“draw”值或“draw”值如何在数据表响应中按顺序增加
- javascript - 语法错误:选择器“input [type ='checkbox'],在css模块中反应