Как выполнить MySQL запрос с оператором LIKE в Django - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь выполнить поиск в моей базе данных mysql с оператором LIKE:

indexstr = request.GET['index']
indexstr = '%' + indexstr + '%'
offset = int(request.GET['offset'])
for row_data in advertisement.objects.raw(
        'select * from requests_advertisement WHERE short_description LIKE '    + indexstr + ' LIMIT 10 OFFSET ' + str(offset*5)):

Но есть ошибка: Изображение ошибки

Этокажется, что он не может работать с % символом.Когда я удаляю %, он работает правильно.

1 Ответ

0 голосов
/ 10 марта 2019

Нет причин использовать необработанный запрос здесь. Вам нужен __icontains поиск:

advertisement.objects.filter(short_description__icontains=request.GET["index"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...