MySQL : Select all the rows except those having the specified values in columns

标签 mysql sql database

我的表中有如下所示的数据。

 dcno | etype | debit | credit |
------+-------+-------+--------+
  1   | sale  | 1200  | 1000   |
  2   | sale  | 1000  | 600    |
  3   | sale  | 1100  | 9001   |
  1   | purc  | 1274  | 1281   |
  4   | sale  | 1119  | 2811   |
  6   | sale  | 2345  | 233    |
  2   | purc  | 4467  | 121    |
  3   | sale  | 8885  | 1214   |

我想要的是一个不考虑行的查询 具有指定的 dcnoetype。例如,如果我指定我不想要具有 dcno 的行 1 和 etype of sale 它应该返回以下内容:

 dcno | etype | debit | credit |
------+-------+-------+--------+
  2   | sale  | 1000  | 600    |
  3   | sale  | 1100  | 9001   |
  1   | purc  | 1274  | 1281   |
  4   | sale  | 1119  | 2811   |
  6   | sale  | 2345  | 233    |
  2   | purc  | 4467  | 121    |
  3   | sale  | 8885  | 1214   |

我试过以下

SELECT  *
FROM    pledger
WHERE   dcno <> 1 AND pledger.etype <> 'sale'

但这并没有奏效(正如预期的那样)。谁能告诉我如何实现这一目标?

最佳答案

你想要or :

SELECT  *
FROM    pledger
WHERE   dcno <> 1 OR pledger.etype <> 'sale'

bool 逻辑表示 NOT (X AND Y)在逻辑上等同于 NOT X OR NOT Y .所以,NOT (dcno = 1 AND etype = 'sale')dcno <> 1 OR etype <> 'sale' .注意:这不需要 NULL考虑在内,但这与此处无关。

这是 SQLFiddle

关于MySQL : Select all the rows except those having the specified values in columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23323334/

相关文章:

sql - 如果使用 hibernate ,SQL 注入(inject)的安全性有多少

java - 无法解析的日期 java.text.ParseException : Unparseable date: "2015-10-08 05:00:00.0"

database - 如何确保文档中的字段在 ArangoDB 中是唯一的?

mysql - 为带有评论的照片库创建数据库

mysql - sqlite3可以优雅地处理30个并发更新请求吗?

mysql - 如何求三个表的总和

mysql - sql查询更新表,其中缺少另一个表中的字段

mysql - 单个查询中的不同计数

sql - 重新分配 ItemsSource - 使用 ItemsSource 之前,项目集合必须为空

sql - "NOT IN"在SQL查询中的性能