这是我的mySQL查询:

SELECT mCat,postSta
FROM `info_posts`
WHERE `mCat` = 'Mobiles' AND `sCat` = 'Mobile Phones' AND `brCat` = 'Apple' AND `postSta` = 1 OR `postSta` = 4 OR `postSta` = 5

问题是它正确地选择了所有的条件,但是它也获取postSta=4和5take a look at the screenshot的内容。我想选择符合mCat、sCat和brCat标准的东西,postSta是1、4或5。

最佳答案

逻辑“and”操作的优先级高于逻辑“or”运算符。您要寻找的逻辑可以通过将一系列“或”条件用括号括起来来实现:

SELECT `mCat`, `postSta`
FROM   `info_posts`
WHERE  `mCat` = 'Mobiles' AND
       `sCat` = 'Mobile Phones' AND
       `brCat` = 'Apple' AND
       (`postSta` = 1 OR `postSta` = 4 OR `postSta` = 5)

关于mysql - 为什么mySQL查询会产生意外结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53906833/

10-10 02:57