Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 其中,LIKE或NOT运算符未返回预期结果_Sql_Mysqli - Fatal编程技术网

Sql 其中,LIKE或NOT运算符未返回预期结果

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')

我试图得到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') 
   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