I'm using the sqlite3
package in Python and trying to select a single entry from a table called orders
. I would like to get the entry where the value for column order_date
ends in 18 (it's a varchar
column where the actual value of this entry is "10/20/2018").
As per the guidance on similar questions, I've constructed the query as follows:
sql = """SELECT * FROM orders
WHERE order_date LIKE %s"""
args = ['%' + '18']
c.execute(sql, args)
But I get this back:
---------------------------------------------------------------------------
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
I've tried structuring the query a number of ways, but get the same error every time. According to the other questions I've browsed, this should work. What's going wrong?
You should use ?
as a placeholder for a binding variable instead of %s
:
sql = """SELECT * FROM orders
WHERE order_date LIKE ?"""