mysql 查询条件之外的数据_mysql 查询符合条件的数据

匿名用户

1级

2014-12-11 回答

SELECT * FROM test WHERE state IS NULL AND 1 > (SELECT COUNT(*) FROM test t WHERE t.state = 0)

追问:

请问 SELECT * FROM test WHERE state IS NULL AND 1 和(SELECT COUNT(*) FROM test t WHERE t.state = 0) 是同一条数据

查询1的时候

如果 2的state为0的话也得查出来得

追答:

哦,刚看明白,我再改改。

追问:

字段 id name state

1 你好 null

2 你 null

1 你 0

2 你好 0

查询肯定是一条条查询得SELECT * FROM test WHERE state IS NULL查出一条,比较下当前这条,在test中有无state为0的 ,注意是当前

麻烦了哈

追答:

SELECT * FROM test WHERE id NOT IN(SELECT id FROM test WHERE state = 0 ) AND state IS NULL

追答:

SELECT * FROM test WHERE id NOT IN(SELECT id FROM test WHERE state = 0 ) AND state IS NULL

追问:

谢谢哈 还是会查出来

比如

1 你好 null

2 你 null

1 你 0

会把 1 你好 null 查出来

追答:

0a2ee146eb8e8bbd6ece378800b4abfd.png

SELECT * FROM test WHERE id NOT IN(SELECT id FROM test WHERE state = 0 ) AND state IS  NULL

结果:

90dc34a9c7e98ed8b2e0f553ab3f1294.png

追问:

额额 我再看看哈

追答:

我的state是int型,你要是字符窜就改改。

追问:

恩恩 改好了

再请教下 如果有的id没有为Null但是state为0 像这种数据不用过滤 该怎么改?

谢谢了

追答:

如果有的id没有为Null但是state为0 像这种数据不用过滤 该怎么改?

没明白。是不是含有state为null的且含有state为0的就不查,否则都查出来。

那么:

SELECT * FROM test WHERE id NOT IN(

SELECT id FROM test WHERE (id IN(SELECT id FROM test WHERE state = 0 ) AND state IS NULL )

)

追问:

意思是比如

1 你好 null

2 你 null

1 你 0

null 好 0

查询得时候把 2 你 null 、null 好 0 这两条查出来

第二条没id 不应该查不出来

追答:

SELECT * FROM test WHERE id IS NULL OR ( id NOT IN ( SELECT id FROM test WHERE state = 0 AND id IS NOT NULL ) AND state IS NULL)

这样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值