Mysql SQL将LIKE和and组合在一起,给出了错误的结果

Mysql SQL将LIKE和and组合在一起,给出了错误的结果,mysql,sql,myisam,Mysql,Sql,Myisam,使用上述代码时,我返回三行,而不是带有 类似“%whatever%”的列 我觉得很奇怪,也不明白为什么 我如何重写我的sql代码以使用LIKE签入几个id为='where'的行 我使用MYSQL和MyISAM您需要括号: SELECT * FROM table WHERE column LIKE '%whatever%' AND id='1' OR id='2' OR id='3' 和的优先级高于或,因此您的原文被解释为: SELECT * FROM table WHERE column LI

使用上述代码时,我返回三行,而不是带有
类似“%whatever%”的列

我觉得很奇怪,也不明白为什么

我如何重写我的sql代码以使用LIKE签入几个id为='where'的行

我使用MYSQL和MyISAM

您需要括号:

SELECT * FROM table WHERE column LIKE '%whatever%' AND id='1' OR id='2' OR id='3'
的优先级高于
,因此您的原文被解释为:

SELECT *
FROM table
WHERE column LIKE '%whatever%' AND (id='1' OR id='2' OR id='3')
原文最好在中使用

WHERE )column LIKE '%whatever%' AND id='1') OR id='2' OR id='3'

而且,如果
id
确实是一个整数,那么应该去掉单引号。他们建议该类型实际上是一个字符串。

使用
函数中的

SELECT *
FROM table
WHERE column LIKE '%whatever%' AND id in ('1', '2', '3')
我假设id是一个varchar。如果是int,则使用:

SELECT * FROM table WHERE column LIKE '%whatever%' AND id IN ('1', '2', '3')

看看代数。代数。布尔代数。1+2*3=7不是9我使用MYSQL和MyISAM解决了问题不,这种组合会产生问题。请不要在问题中添加
SOLVED
。相反,接受一个答案或者发布你自己的答案并接受它。
SELECT * FROM table WHERE column LIKE '%whatever%' AND id IN (1, 2, 3)