OperationalError: near "%": syntax error with sqlite3 in Python
OperationalError: near "%": syntax error with sqlite3 in Python
我在 Python 中使用 sqlite3
包并尝试 select 来自 table 的单个条目 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 ?"""
我在 Python 中使用 sqlite3
包并尝试 select 来自 table 的单个条目 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 ?"""