Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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
Mysql查询/操作顺序_Mysql - Fatal编程技术网

Mysql查询/操作顺序

Mysql查询/操作顺序,mysql,Mysql,我正在努力解决这个问题: 如果颜色信息不为空或不为空,请列出每种马的所有详细信息 表: 以下似乎不起作用,我也一直在获取有关母马的信息: SELECT * FROM horse WHERE (gender='S') AND colour IS NOT NULL or NOT colour=''; 我以为括号的意思是gender='S'会先“触发”,但我想我误解了操作顺序了吧 谢谢。这里有几个问题。首先,和的优先级高于或,因此您的where子句实际上被解释为是((性别)且颜色不为空)或(非

我正在努力解决这个问题:

如果颜色信息不为空或不为空,请列出每种马的所有详细信息

表:

以下似乎不起作用,我也一直在获取有关母马的信息:

SELECT * FROM horse
WHERE (gender='S')  
AND colour IS NOT NULL
or NOT colour='';
我以为括号的意思是
gender='S'
会先“触发”,但我想我误解了操作顺序了吧


谢谢。

这里有几个问题。首先,
的优先级高于
,因此您的
where
子句实际上被解释为是
((性别)且颜色不为空)或(非颜色=“”)
。其次,即使括号正确,
(color不是NULL不是color='')
总是正确的-如果
color
NULL
它不等于
'
,如果它是
'
,它就不是
NULL
。因此,实际上,您只需要一系列
条件:

SELECT * 
FROM   horse
WHERE  gender='S' AND 
       colour IS NOT NULL AND
       colour != '';

这里有几个问题。首先,
的优先级高于
,因此您的
where
子句实际上被解释为是
((性别)且颜色不为空)或(非颜色=“”)
。其次,即使括号正确,
(color不是NULL不是color='')
总是正确的-如果
color
NULL
它不等于
'
,如果它是
'
,它就不是
NULL
。因此,实际上,您只需要一系列
条件:

SELECT * 
FROM   horse
WHERE  gender='S' AND 
       colour IS NOT NULL AND
       colour != '';