Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 15, 2017 13:02:04

Maestro
Зарегистрирован: 2017-11-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как передать процент (%) в запрос SQL?

Добрый день
Пишу запрос с LIKE приложением (выдержки):

  sql = "SELECT disp.status.NAME, FROM_UNIXTIME(disp.data.DATE,'%d.%m.%Y') AS DATE,disp.data.DO_PERCENT, disp.data.INFO FROM disp.data INNER JOIN disp.status ON disp.status.ID=disp.data.STATUS_ID ORDER BY disp.data.DATE DESC WHERE disp.NAME LIKE %s"
#Далее прикладываю запрос пользователя и выполняю весь SQL:
cursor.execute(sql, ("%" + like_query + "%",))

Проблема в том, что метод execute срабатывает на %d в FROM_UNIXTIME, а мне надо на последнем %s. Удваивание %% тоже не помогает - это передается прямо в FROM_UNIXTIME
Как правильно тут написать?
Спасибо.

Офлайн

#2 Ноя. 17, 2017 03:09:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Как передать процент (%) в запрос SQL?

 "FROM_UNIXTIME(disp.data.DATE,'%d.%m.%Y')"
В этом выражении у тебя должны двойные проценты стоять на каждом проценте, иначе execute() их будет заменять.
И для LIKE тоже надо двойные проценты передавать.
Один процент должен стоять только в одном месте - где вся строка для LIKE должна подставиться - %s.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version