SELECT * FROM table WHERE column LIKE '%whatever%' AND id='1' OR id='2' OR id='3'
Run Code Online (Sandbox Code Playgroud)
当使用上面的代码时,我回到了三行而不是那一行
column LIKE '%whatever%'
我发现它很奇怪,并且无法理解为什么.
如何重写我的sql代码以使用LIKE来检查具有id ='whatever'的sevral行
我使用MYSQL和MyISAM
你需要括号:
SELECT *
FROM table
WHERE column LIKE '%whatever%' AND (id='1' OR id='2' OR id='3')
Run Code Online (Sandbox Code Playgroud)
AND优先级高于OR,因此您的原文被解释为:
WHERE )column LIKE '%whatever%' AND id='1') OR id='2' OR id='3'
Run Code Online (Sandbox Code Playgroud)
原文写得更好in:
SELECT *
FROM table
WHERE column LIKE '%whatever%' AND id in ('1', '2', '3')
Run Code Online (Sandbox Code Playgroud)
而且,如果id真的是一个整数,你应该删掉单引号.他们建议这种类型真的是一个字符串.
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |