猿问

OperationalError: near "%": Python 中的 sqlite3 语法错误

我sqlite3在 Python 中使用该包并尝试从名为orders. 我想获取列值以order_date18 结尾的条目(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

我已经尝试通过多种方式构建查询,但每次都遇到相同的错误。根据我浏览过的其他问题,这应该可行。怎么了?


慕的地10843
浏览 155回答 1
1回答

德玛西亚99

您应该?用作绑定变量的占位符,而不是%s:sql&nbsp;=&nbsp;"""SELECT&nbsp;*&nbsp;FROM&nbsp;orders &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;order_date&nbsp;LIKE&nbsp;?"""
随时随地看视频慕课网APP

相关分类

Python
我要回答