SQL - 简单选择查询的麻烦

Big*_*ies 1 sql

我在弄清楚为什么下面的SQL查询不起作用时遇到了一些麻烦...当members_only设置为0时,它仍然显示它们......

SELECT * 
  FROM reports 
 WHERE story = "1" 
    OR barebones = "1" 
   AND members_only = "1"
Run Code Online (Sandbox Code Playgroud)

Joh*_*don 8

这取决于您的数据,但您可能不知道ANDSQL中的优先级高于OR,因此您的查询实际上评估为:

SELECT * 
  FROM reports 
 WHERE story = '1'
    OR (barebones = '1' AND members_only = '1')
Run Code Online (Sandbox Code Playgroud)

考虑使用其他答案的其他括号来明确声明您的意图