MySql 使用 NOT IN 返回值包含null值,返回数据不全

场景:

可以看到上面的数据, city 的country 允许 出现 值为 null的数据 。

正常使用 in 查询 :

数据返回很正确


 

使用not in 的时候 ,数据返回不对 :

预想返回的数据应该是:

 

怎么玩, SQL写法:

SELECT * FROM city WHERE  country  IN ('CHINA')  IS NOT TRUE

数据返回与预想一致:

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MySQL中,可以使用IFNULL()函数来判断一个表达式是否为NULL。如果第一个表达式不为NULL,则IFNULL()函数的返回值为第一个表达式的;否则返回第二个表达式的。IFNULL()函数的返回值可以是数字或字符串,具体取决于上下文。例如,IFNULL(1,0)的返回值为1,IFNULL(NULL,10)的返回值为10。\[1\] 此外,在MySQL中,还可以使用is null和is not null运算符来判断一个字段是否为空。当需要查询某个字段为空时,应使用is null,而不能使用"=null",因为MySQL中的null不等于任何其他,也不等于另一个null。优化器会将"=null"的查询过滤掉,不返回任何数据。当需要查询某个字段为非空时,应使用is not null。\[2\] 另外,MySQL中的if语句可以用于表达式的判断,也可以在存储过程中作为流程控制语句使用。在常规使用中,if语句可以使用IF表达式作为条件判断,根据条件的真假执行相应的操作。\[3\] 综上所述,如果你想在MySQL使用ifnotnull语句,可以使用IFNULL()函数来判断一个表达式是否为NULL,或使用is null和is not null运算符来判断一个字段是否为空。同时,你也可以使用if语句作为流程控制语句来根据条件执行相应的操作。 #### 引用[.reference_title] - *1* *3* [MySQL中if语句如何使用](https://blog.csdn.net/Hell_potato777/article/details/126943275)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [mysql查询语句select-(null,not null,is null和is not null)](https://blog.csdn.net/weixin_42504785/article/details/116123722)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小目标青年

对你有帮助的话,谢谢你的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值