选择语法 - 是"something =('this'或'that'或'other')"可以吗?

use*_*755 2 mysql syntax select

我使用的是MySQL v5.5.27.我通常会像这样编写这个SELECT语句:

SELECT DISTINCT * 
FROM table 
WHERE something = 'this' 
    OR something = 'that' 
    OR something = 'other' 
    AND thingamajig = 'one' 
    OR thingamajig = 'two'
Run Code Online (Sandbox Code Playgroud)

但是这个SELECT语句会提供完全相同的结果吗?

SELECT DISTINCT * 
FROM table 
WHERE something = ('this' OR 'that' OR 'other') 
    AND thingamajig = ('one' OR 'two')
Run Code Online (Sandbox Code Playgroud)

我试过运行它,它似乎工作.只是想确保第二种做事方式不会以某种我无法想到的方式返回错误的数据.

感谢您的任何见解,帮助!

Ker*_*mit 6

我建议使用括号来清楚地分组搜索条件的顺序.

你的第二个SELECT陈述比第一个陈述要清楚得多.

SELECT DISTINCT * 
FROM table 
WHERE something = ('this' OR 'that' OR 'other') 
AND thingamajig = ('one' OR 'two')
Run Code Online (Sandbox Code Playgroud)

请记住,IN当您有多个值时,也可以使用运算符:

SELECT DISTINCT * 
FROM table 
WHERE something IN ('this', 'that', 'other') 
AND thingamajig IN ('one', 'two')
Run Code Online (Sandbox Code Playgroud)

此外,使用IN操作员的速度比使用速度快得多OR.