选择除基于 MySQL 中的两个字段之外的所有行
Posted
技术标签:
【中文标题】选择除基于 MySQL 中的两个字段之外的所有行【英文标题】:Select all rows except based on two fields in MySQL 【发布时间】:2011-06-16 04:12:25 【问题描述】:SELECT * FROM table WHERE id != 4;
SELECT * FROM table WHERE NOT id = 4;
SELECT * FROM table WHERE id <> 4;
我已经完成了这一切,但我还必须选择另一个字段(或更多字段)来决定返回哪些行。
我怎样才能让它工作?
【问题讨论】:
您已经使用 * 选择了所有字段 - 所以我不清楚您的问题是什么。如果您询问这三种检查不平等的方法之间的区别,请参考以下答案:***.com/questions/7884/… 您问题的措辞有点不清楚,所以我试图澄清一下。请让我知道我是否已将其塞满以便修复。 【参考方案1】:如果您想“取消选择”两个条件都为真(ID1
为 4,ID2
为 7)的列,请使用类似:
select * from TBL where ID1 <> 4 or ID2 <> 7;
ID1 ID2 selected
--- --- --------
4 7 no
4 1 yes
1 7 yes
1 1 yes
如果您想“取消选择”任一条件为真(ID1
为 4 或 ID2
为 7)的列,请使用类似:
select * from TBL where ID1 <> 4 and ID2 <> 7;
ID1 ID2 selected
--- --- --------
4 7 no
4 1 no
1 7 no
1 1 yes
这可以扩展到更多条件,只需将它们添加到where
子句的末尾(并将文本中的both/either
更改为all/any
)。
【讨论】:
where both conditions are true
暗示AND
@zerk:除了我们要取消选择它们,而不是选择它们——这会颠倒条件——我会添加真值表来澄清。
我会接受这个作为答案,因为这是我的想法。非常感谢。不过,我已经发布了我的问题的答案。【参考方案2】:
从idAlbum
!= 4 和idAlbum
!= 8 的相册中选择 * 我刚刚解决了我的问题。谢谢大家的帮助!
【讨论】:
以上是关于选择除基于 MySQL 中的两个字段之外的所有行的主要内容,如果未能解决你的问题,请参考以下文章
在 BigQuery 中选择除 ARRAY_AGG + STRUCT 中的一列之外的所有内容
您可以选择除 1 或 2 个字段之外的所有内容,而不会出现作家抽筋吗?