OperationalError: около "%": синтаксическая ошибка с sqlite3 в Python - PullRequest
0 голосов
/ 15 февраля 2019

Я использую пакет sqlite3 в Python и пытаюсь выбрать одну запись из таблицы с именем orders.Я хотел бы получить запись, в которой значение для столбца order_date оканчивается на 18 (это столбец varchar, где фактическое значение этой записи равно «20/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

Я пытался структурировать запрос несколькими способами, но каждый раз получаю одну и ту же ошибку.Согласно другим вопросам, которые я просматривал, это должно работать.Что не так?

1 Ответ

0 голосов
/ 15 февраля 2019

Вы должны использовать ? в качестве заполнителя для переменной привязки вместо %s:

sql = """SELECT * FROM orders
            WHERE order_date LIKE ?"""
...