Sql 其中,LIKE或NOT运算符未返回预期结果
我试图得到kids列为NULL的结果,但是由于某种原因,sql返回所有匹配的LIKE或行,即使kids列不为NULL,我尝试了下面的代码 此SQL按预期返回结果Sql 其中,LIKE或NOT运算符未返回预期结果,sql,mysqli,Sql,Mysqli,我试图得到kids列为NULL的结果,但是由于某种原因,sql返回所有匹配的LIKE或行,即使kids列不为NULL,我尝试了下面的代码 此SQL按预期返回结果 SELECT `name`, `middlename`, `kids` FROM persons WHERE (name LIKE '%brenda%' OR middlename LIKE '%smith%') OR (name LIKE '%kent%' OR middlename LIKE '%smith')
SELECT `name`, `middlename`, `kids`
FROM persons
WHERE (name LIKE '%brenda%' OR middlename LIKE '%smith%')
OR (name LIKE '%kent%' OR middlename LIKE '%smith')
AND kids IS NOT NULL
此SQL返回与上面相同的结果,即使kids列包含数据且不为null
SELECT `name`, `middlename`, `kids`
FROM persons
WHERE (name LIKE '%brenda%' OR middlename LIKE '%smith%')
OR (name LIKE '%kent%' OR middlename LIKE '%smith%')
AND kids IS NULL
我也尝试过这个方法,但是它仍然返回一个结果,即使kids列不是null
SELECT `name`, `middlename`, `kids`
FROM persons
WHERE (name LIKE '%brenda%' OR middlename LIKE '%smith%' AND kids IS NULL)
OR (name LIKE '%kent%' OR middlename LIKE '%smith%' AND kids IS NULL)
你把括号搞错了。 使用括号将
或
条件与和
条件分开-没有必要将或
与或
分开请改为尝试此查询:
SELECT `name`, `middlename`, `kids`
FROM persons
WHERE (name LIKE '%brenda%'
OR name LIKE '%kent%'
OR middlename LIKE '%smith')
AND kids IS NULL
你把括号搞错了。 使用括号将
或
条件与和
条件分开-没有必要将或
与或
分开请改为尝试此查询:
SELECT `name`, `middlename`, `kids`
FROM persons
WHERE (name LIKE '%brenda%'
OR name LIKE '%kent%'
OR middlename LIKE '%smith')
AND kids IS NULL
所有
或条件周围都需要括号:
SELECT
`name`, `middlename`, `kids`
FROM
persons
WHERE
(name LIKE '%brenda%' OR middlename LIKE '%smith%'
OR name LIKE '%kent%' OR middlename LIKE '%smith)
AND kids IS NOT NULL
所有或条件周围都需要括号:
SELECT
`name`, `middlename`, `kids`
FROM
persons
WHERE
(name LIKE '%brenda%' OR middlename LIKE '%smith%'
OR name LIKE '%kent%' OR middlename LIKE '%smith)
AND kids IS NOT NULL