我在使用AND / OR运算符时遇到了一些麻烦。这很简单,但我遇到以下情况时遇到了麻烦:
WHERE (ID = '111') OR (charge_desc LIKE '%garn%') OR
(charge_desc LIKE '%levy%') OR
(charge_desc LIKE '%exe%')
基本上,我正在尝试在ID 111上找到基于仅的关键字。但是,当前查询发生的情况是,它会根据一堆不同的内容查找这些关键字而不是ID。我试图操纵括号,我看到了问题。因为它不能像XYZ那样......"但它不能成为AND,因为如果你做AND,那么它会根据这三个标准来查找该ID。
我正在寻找ID 111并寻找garn
或levy
或exe
- 而不是" AND"但它应该是每一个变化,但只有111.
我希望这是有道理的。我对括号感到满意。
我刚试过这个:
WHERE ID = 111
HAVING garn or levy or exe
请原谅我缺乏语法。 :)
答案 0 :(得分:5)
如果您绝对必须拥有id = 111
,那么这是 and
关系,而不是or
关系。然后,您可以在其他条件之间拥有一系列or
运算符:
WHERE ID = '111' AND
(charge_desc LIKE '%garn%' OR
charge_desc LIKE '%levy%' OR
charge_desc LIKE '%exe%')
答案 1 :(得分:2)
问题在于括号。
让我们来看看这个场景:
WHERE (ID = '111') OR (charge_desc LIKE '%garn%') OR
(charge_desc LIKE '%levy%') OR
(charge_desc LIKE '%exe%')
你说的是ID = 111或者Charg_Desc,如garn ......等等。
WHERE (ID = '111') AND
(charge_desc LIKE '%garn%' OR
charge_desc LIKE '%levy%' OR
charge_desc LIKE '%exe%')
现在,您说WHERE ID = 111并且应用以下条件OR来引入额外匹配。请记住,匹配是ID匹配的补充。