2016-10-14 2 views
0

Я не знаю, в чем проблема в моем запросе, но он вызывает некоторую ошибку.mysql error: Llike operator throws error

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 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '

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

Пожалуйста, помогите решить эту проблему

+1

Вам не нужно ','. –

+1

удалить запятые после –

+0

@Giorgos Betsos спасибо – scriptkiddie

ответ

1

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

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

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

+0

Спасибо, что за ваш ответ, и если есть объяснение, это будет более полезно, я действительно не понимаю, почему вы использовали concat для имени столбца – scriptkiddie

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%'