我一直以为你可以OR在一个LIKE语句中用来查询MySQL中的东西.所以,如果我想将一行中的多个字段与1个关键字或术语进行比较:
SELECT * FROM MyTable WHERE Column1 OR Column2 LIKE '%keyword%';
Run Code Online (Sandbox Code Playgroud)
如果我有一系列的词比较:
SELECT * FROM MyTable WHERE Column1 OR Column2 LIKE '%keyword1%'
AND Column1 OR Column2 LIKE '%keyword2%';
Run Code Online (Sandbox Code Playgroud)
但是,我不相信语法是正确的.是否有一种有效的方法可以将此写为:
SELECT * FROM MyTable WHERE Column1 LIKE '%keyword1%' OR Column2 LIKE
'%keyword1%' AND Column1 LIKE '%keyword2%' OR Column2 LIKE '%keyword2%';
Run Code Online (Sandbox Code Playgroud)
我正确地谈到这个吗?
Sas*_*ant 31
用这个::
SELECT * FROM MyTable WHERE (Column1 LIKE '%keyword1%' OR Column2 LIKE
'%keyword1%') AND (Column1 LIKE '%keyword2%' OR Column2 LIKE '%keyword2%');
Run Code Online (Sandbox Code Playgroud)
Maz*_*ick 22
最接近您希望的语法是:
SELECT * FROM MyTable
WHERE (CONCAT(Column1, Column2) LIKE '%keyword1%')
AND (CONCAT(Column1, Column2) LIKE '%keyword2%')
Run Code Online (Sandbox Code Playgroud)
注意:搜索字符串开头的"%"排除了索引的使用.如果要搜索任何大量记录,最好重新考虑实现.
| 归档时间: |
|
| 查看次数: |
54446 次 |
| 最近记录: |