使用或LIKE查询在MySQL中比较多个领域(Using OR in LIKE Query in M

2019-06-25 14:35发布

我一直认为,你可以使用ORLIKE statment查询的东西在MySQL。 所以,如果我想多场连胜比较1个关键字或词:

SELECT * FROM MyTable WHERE Column1 OR Column2 LIKE '%keyword%'; 

如果我有话要比较的数组:

SELECT * FROM MyTable WHERE Column1 OR Column2 LIKE '%keyword1%' 
AND Column1 OR Column2 LIKE '%keyword2%';

我不相信,语法是正确的,但是。 有来自像一边写这个的有效方法:

SELECT * FROM MyTable WHERE Column1 LIKE '%keyword1%' OR Column2 LIKE 
'%keyword1%' AND Column1 LIKE '%keyword2%' OR Column2 LIKE '%keyword2%';

我要对这个正确?

Answer 1:

用这个::

SELECT * FROM MyTable WHERE (Column1 LIKE '%keyword1%' OR Column2 LIKE 
'%keyword1%') AND (Column1 LIKE '%keyword2%' OR Column2 LIKE '%keyword2%');


Answer 2:

最接近你渴望的语法是:

SELECT * FROM MyTable
WHERE (CONCAT(Column1, Column2) LIKE '%keyword1%')
AND (CONCAT(Column1, Column2) LIKE '%keyword2%')

注意:在“%”,在搜索字符串的开头排除使用索引。 如果有任何大量的记录进行搜索,这将是最好重新考虑实施。



文章来源: Using OR in LIKE Query in MySQL to compare multiple fields