Ошибка при использовании как заявление в Django Raw SQL - PullRequest
3 голосов
/ 16 июня 2011

У меня есть сырой SQL-запрос, который всегда дает ошибку при выполнении. Вот мой запрос

Users.objects.raw('select target, username from users where location like \'%s%%\' and date(modified) = \'2011-06-14\'',[location])

Я принимаю location = 'BUILD'

Значения местоположения: «BUILD_A», «BUILD_B», «BUILD_C».

Когда я выполняю raw sql, ниже я получаю сообщение об ошибке.

DatabaseError: (1064, «У вас ошибка в синтаксисе SQL; обратитесь к руководству что соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом 'BUILD'% 'и дата (измененная) =' 2011-06-14 '' в строке 1 ")

В терминах MySQL мне нужно выполнить следующий запрос:

Select target, username from users where location like 'BUILD%' and target = '2011-06-14'

Я гуглил это, но не мог получить это. Пожалуйста, кто-нибудь, помогите мне

Ответы [ 2 ]

5 голосов
/ 16 июня 2011

Я решил свою проблему таким образом.

location = location + '%'

users_list = Users.objects.raw('select target, username from users where location like %s and date(modified) = %s',tuple([location,date]))

Вышеприведенный оператор выполняется без ошибок, и я также могу отображать результаты в шаблоне.

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

У меня ниже работает запрос,

query = "Выберите цель, имя пользователя из пользователей, местоположение которых, например," BUILD% ""
результаты = Users.objects.raw (запрос)

...