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 != '';