广告
返回顶部
首页 > 资讯 > 数据库 >mysql字段数据为null时反查询不到的解决方案
  • 7
分享到

mysql字段数据为null时反查询不到的解决方案

MySql优化解决方案数据库 2022-06-17 10:06:14 7人浏览 佚名
摘要

 当我们通过 mysql 使用 NOT IN 查询时,如果条件字段可以为 NULL 并且值为NULL需要特别注意一下这个时候使用 NOT IN 查询时是查询不到的。测试NULL时反查询不到例子假如我们现在有一个表 useridnicknam

 当我们通过 mysql 使用 NOT IN 查询时,如果条件字段可以为 NULL 并且值为NULL需要特别注意一下这个时候使用 NOT IN 查询时是查询不到的。

mysql字段数据为null时反查询不到

测试NULL时反查询不到例子

  • 假如我们现在有一个表 user

idnickname
1张三
2李四
3NULL
4王五
  • 现在我们查询用户名不是 张三李四  的用户

select * from users where user_name not in ('张三','李四');
  • 这个时候我们应该得到的是两条数据

idnickname
3NULL
4王五
  • 但是结果却只有一条数据

idnickname
4王五

分析测试NULL时反查询不到问题

 这是因为 mysqlnot in 使用的是 不相等(!=) 比较,即每条记录的 user_name 都和  张三, 李四 进行数据比较。

foreach ($user_names as $user_name) {
       if ($user_name != '张三' && $user_name != '李四') {
               return true; // 符合条件
       } else {
               return false; //不符合条件
       }
}

Mysql问题解决方案

  • mysqlNULL 的判断只能用 IS NULIS NOT NULL 判断, NULL != 任意值  都返回 false 所有 id = 3 的记录不符合条件。

  • 在使用 mysql 设计表字段时候我们应该避免允许 NULL 的存在,在设置字段时使用 NOT NULL 不允许存在 NULL

`createtime` INT UNSIGNED NOT NULL DEFAULT '0' COMMENT '创建时间',

       

您可能感兴趣的文档:

--结束END--

本文标题: mysql字段数据为null时反查询不到的解决方案

本文链接: https://www.lsjlt.com/news/32979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作