mysql错误:Llike运算符抛出错误

时间:2016-10-14 10:43:00

标签: mysql

我不知道我的查询中的问题是什么,但它会引发一些错误。

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

请帮助解决此问题

2 个答案:

答案 0 :(得分: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%'

答案 1 :(得分:1)

不需要逗号。但是,这将更容易写成:

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

此查询中的逻辑简化了比较。它在列的开头和结尾添加了一个分隔符(' ')。这样可以更容易地在模式中找到单词。