mysql error: Llike оператор выдает ошибку

Я не знаю, в чем проблема в моем запросе, но это вызывает некоторую ошибку.

select * from tbl_emailswipes where 
         eswipes_title like '% 1939 %',
      or eswipes_title like '% 1939%',
      or eswipes_title like '%1939 %',
      or eswipes_title like '%1939%',
      or eswipes_text  like '% 1939 %',
      or eswipes_text  like '% 1939%',
      or eswipes_text  like '%1939 %',
      or eswipes_text  like '%1939%'

и ошибка

1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса,

      or eswipes_title like '% 1939%',
      or eswipes_title like '%' at line 2

Помогите решить эту проблему

mysql,

0

Ответов: 2


1 принят

Никаких запятых не требуется. Но это было бы гораздо легче написать:

select es.*
from tbl_emailswipes es
where concat(' ', es.eswipes_title, ' ') like '% 1939 %' or
      concat(' ', es.eswipes_text, ' ') like '% 1939 %';

Логика в этом запросе упрощает сравнение. Он добавляет разделитель ( ' ') в начале и конце столбцов. Это значительно облегчает поиск слова в шаблоне.


1

Вы используете (,) в своем запросе. Удалите это.

select * from tbl_emailswipes where 
         eswipes_title like '% 1939 %'
      or eswipes_title like '% 1939%'
      or eswipes_title like '%1939 %'
      or eswipes_title like '%1939%'
      or eswipes_text  like '% 1939 %'
      or eswipes_text  like '% 1939%'
      or eswipes_text  like '%1939 %'
      or eswipes_text  like '%1939%'
MySQL,