Ошибка синтаксиса в SQL-запросе. Не удалось найти ошибку

88
6

Я пишу тесты для своей базы данных в mysql.

con.query("SELECT  'list'.* FROM 'list'  WHERE 'list'.'place' = 86 AND 'list'.'person' = \"#{person_id}\" AND (( (list.state = 'open' AND num=\"#{num}\") || (list.state = ?) )) AND (list.updated_at > \"2018-06-05\") ORDER BY list.person, list.state='closed' DESC, list.updated_at DESC LIMIT 50 OFFSET 1")

list - таблица, а num, place и person - значения одного элемента из списка. Я также использую это в рубиновом скрипте.

Я получаю синтаксическую ошибку. Сообщение об ошибке:

You have an error in your SQL syntax check the manual that corresponds to your MySQL server version for the right syntax to use near ''?) )) AND (list.update_at > "2018-06-05")) ORDER BY list.person, or'

Я не могу понять эту проблему. Пожалуйста, помогите мне.

спросил(а) 2021-01-25T20:19:40+03:00 4 месяца, 3 недели назад
1
Решение
77

Посмотрите на часть запроса ORDER BY

ORDER BY list.person, list.state='closed' DESC, list.updated_at DESC 

list.state не должен иметь a = 'closed'

Просто попробуйте изменить все это на

ORDER BY list.person, list.state DESC, list.updated_at DESC

ответил(а) 2021-01-25T20:19:40+03:00 4 месяца, 3 недели назад
-4

Я думаю, что вы используете неправильный символ для двойных кавычек. У вас есть " Попробуйте ".

ответил(а) 2021-01-25T20:19:40+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема