0

我正在运行以下查询

SELECT * FROM (`default_schemes`) 
WHERE `region` = 'Location1' 
OR `region` = 'Location2' 
OR `region` = 'Location3' 
OR `region` = 'Location4' 
OR `region` = 'Location5' 
OR `region` = 'Location6' 
AND `finance` LIKE '%Equity%' 
OR `guidance` LIKE '%Business Mentoring %' 

哪个将与财务和指导相匹配,但无论设置如何,都会吸引所有位置,我错过了什么?

4

4 回答 4

2
SELECT * FROM `default_schemes`
WHERE `region` in ('Location1' ,'Location2' ,'Location3' , 'Location4' , 'Location5' ,'Location6' )
AND (`finance` LIKE '%Equity%' 
OR `guidance` LIKE '%Business Mentoring%');
于 2013-07-02T12:06:53.937 回答
0

也许你想要这个...

SELECT * 
  FROM default_schemes
 WHERE region IN('Location1','Location2','Location3','Location4','Location5','Location6')
   AND (finance LIKE '%Equity%' OR guidance LIKE '%Business Mentoring %');

或者,你可能想要这个......

SELECT * 
  FROM default_schemes
 WHERE (region IN('Location1','Location2','Location3','Location4','Location5','Location6')
   AND finance LIKE '%Equity%')
    OR guidance LIKE '%Business Mentoring %';
于 2013-07-02T12:08:04.727 回答
0

and 运算符的优先级高于 or 运算符,因此像 A 或 B 和 C 或 D 之类的东西会被解析为 A 或(B 和 C)或 D。

将括号添加到适当的位置以获得您想要的解释。

于 2013-07-02T12:08:33.137 回答
0
SELECT * FROM (`default_schemes`) 
WHERE `region` IN ('Location1' 
, 'Location2' 
, 'Location3' 
, 'Location4' 
, 'Location5' 
, 'Location6' )
AND (`finance` LIKE '%Equity%' 
OR `guidance` LIKE '%Business Mentoring %')

你能检查一下吗。

于 2013-07-02T12:09:51.007 回答