mysql - 如何选择两列不等于值的行?
问题描述
我有一个表,其中每一行都有一个category
和subcategory
。
我想选择所有行,除了特定的category
和subcategory
.
我的数据如下所示:
| category | subcategory |
|----------|-------------|
| Color | Orange |
| Fruit | Apple |
| Fruit | Orange |
| Fruit | Banana |
我希望我的结果看起来像这样:
| category | subcategory |
|----------|-------------|
| Color | Orange |
| Fruit | Banana |
这是我尝试过的,但显然不起作用:
SELECT *
FROM table
WHERE
(category <> 'Fruit' AND subcategory = 'Orange') and
(category <> 'Fruit' AND subcategory = 'Apple')
我似乎无法理解如何让它发挥作用。SQL 是否有办法说where not (this and this)
,因为我仍然想要“水果”类别并且我仍然想要“橙色”子类别。
解决方案
那么为什么不试试NOT呢?
SELECT *
FROM yourtable
WHERE NOT (category = 'Fruit' AND subcategory IN ('Orange', 'Apple'))
推荐阅读
- c# - 字典需要“Systems.Collections.Generic.List'1[ProjectName.ViewModels.ProductViewModel]”类型的模型项?
- java - 如何在 Java 中重新启动程序?
- r - 从 R 中的区间 [start, stop] 数据估计密度
- android - Android firestore 检索数据地图
- cobol - PeopleSoft Cobol 指令
- dapper - 如何使用 Dapper Extensions Predicate 实现“NOT IN”子句?
- vbscript - 随机重新排列单词中的字母
- javascript - 手风琴只打开一次然后出现故障
- python - 在 Windows 10 上安装 cusignal
- java - 如何在 Java 中的 if 语句中使用事件对象作为条件?