mysql - sql查询where条件与或

标签 mysql where-clause

我的表中有以下数据:

id: 1, name: TOM, visible: 1, field_1: EMPTY, field_2: EMPTY, field_3: EMPTY。

SELECT id, name FROM table 
WHERE name <> 'TOM' AND visible = 1 
      AND field_1 <> '' OR field_2 <> '' OR field_3 <> ''

我只想选择名称不同于“name1”且至少有一个字段不为空的行。

我预计此查询没有结果,但我得到:id,TOM 就像 where name 条件被覆盖。

最佳答案

您的问题是优先级:将 OR 括起来:

SELECT id, name
FROM table 
WHERE name <> 'TOM'
AND visible = 1 
AND (field_1 <> '' OR field_2 <> '' OR field_3 <> '')

关于mysql - sql查询where条件与或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26438109/

相关文章:

Java - 比较通过表单提交的日期与存储在 mysql 数据库中的日期 - 如何?

android - 使用选择过滤时清空光标行

带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用

Mysql在同一列中加入多个索引

powershell - PowerShell Where-Object-如何对条件进行分组

php - 意外的 T_ENCAPSED_AND_WHITESPACE

mysql - 如何使用其他三个表中列的平均值更新一个表中的分数列?

php - 如何在 union 上更新

带有内部查询的mysql

php - 从 MySQL 数据库返回与特定 PHP 变量匹配的值?