#sql #mariadb #mariasql
Вопрос:
Я пытаюсь создать такой запрос:
SELECT * FROM table_name WHERE column_name LIKE %?%
Ошибка:
Ошибка: ER_PARSE_ERROR: У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на наличие правильного синтаксиса для использования рядом со словом » %» » %» в строке 1
Как избежать двух апострофов?
Это работает:
SELECT * FROM table_name WHERE column_name LIKE ?
но тогда мне понадобилось бы точное совпадение.
Комментарии:
1. Вам нужны одинарные кавычки вокруг шаблона.
Ответ №1:
Я подозреваю, что вы хотите:
WHERE column_name LIKE CONCAT('%', ?, '%')
Тем не менее, я бы посоветовал вам добавить подстановочные знаки в приложение и просто использовать:
WHERE column_name LIKE ?
Комментарии:
1. Спасибо за ваш ответ, @gordon. Конкат работает нормально. Можете ли вы рассказать немного больше о том, что вы имеете в виду, добавляя подстановочные знаки в приложение?
2. @Не здесь . . . В коде, отправляющем параметр, поставьте
'%'
в начале и в конце прямо в параметре.3. Ha! Это умно, @Гордон. В чем было бы преимущество перед конкат? Просто скорость?
4. @Nothere . . . Это упрощает логику запроса. Но у меня нет твердого мнения на этот счет.