mysql用is null查不生效的一种情况

这篇具有很好参考价值的文章主要介绍了mysql用is null查不生效的一种情况。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天发现了一个诡异的情况:
首先是在记录中可以明显看到
mysql用is null查不生效的一种情况,mysql,数据库
update_time有null记录。
但用一下sql查询:

SELECT count(*) FROM risknoting WHERE noting_state='未标注' and update_time is NULL

得到结果却是0条。

但应该无论如何都要大于等于1条。
因此,我查询了这个字段的长度

SELECT length(update_time) FROM risknoting where id=438784

发现是19

因此这个NULL根本就不是正常的null值。

看了一下建表语句

`update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',

发现默认是’0000-00-00 00:00:00’
因此再用以下语句查询、发现生效了。

SELECT count(*) FROM risknoting WHERE noting_state='未标注' and update_time ='0000-00-00 00:00:00'

问题根本原因:SQL建表语句不规范、不应该用0000-00-00 00:00:00当作默认值。正确的建表语句参考:文章来源地址https://www.toymoban.com/news/detail-605335.html

`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间'

到了这里,关于mysql用is null查不生效的一种情况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 8 - 处理 NULL 值 - is null、=null、is not null、<> null 、!= null

    处理 NULL 值: IS NULL : IS NULL 用于检查一个列是否为 NULL。例如,如果查找一个表中某一列的值为 NULL 的行,可以使用以下语法: IS NOT NULL : IS NOT NULL 用于检查一个列是否不为 NULL。例如,如果查找一个表中某一列的值不为 NULL 的行,可以使用以下语法: = NULL 、!= NULL 和 N

    2024年02月08日
    浏览(30)
  • Pycharm遇到“Defaulting to user installation because normal site-packages is not writeable”的一种解决方法

    一、问题描述: pycharm里运行代码缺少相应的库,进行终端安装报错:“Defaulting to user installation because normal site-packages is not writeable”    二、可能原因: 在\\\"Program Files\\\"这个文件夹下面做任何修改都需要管理员权限,比如我在\\\"Program Files\\\"下面新建一个文件夹也需要提供管理员

    2024年02月11日
    浏览(79)
  • 【MySQL】 IS NOT NULL 和 != NULL 的区别?

    最近在开发小伙伴的需求,遇到了一个数据库统计的问题, is not null 结果正确 !=null 结果就不对,然后就激发了获取真理的想法,那必须的查查 咋回事嘞? 在用MySQL的过程中,你是否存在过如下的几个疑问? 我的字段类型明明指定的是NOT NULL,但是为什么还是可以插入空值

    2024年02月08日
    浏览(27)
  • MySQL索引可能失效之or、is null、is not null、不等于(!=,<>)、联合索引

    1、如果 A,B 两列都有索引,那么  select * from Table where A=a or B=b;  会走索引吗? 答案:会,因为 A,B都有索引; 2、如果 A,B有索引,但是C没有索引; select * from Table where A=a or B=b or C =c; 会走索引吗? 答案:不会走,因为C是or的形式,且没有索引 3、如果 建了A B联合索引,但是

    2024年02月11日
    浏览(25)
  • mysql大文件导入sql,没有配置my-ini的情况下,或者配置文件不生效命令修改

    找到mysql的bin用管理员登录mysql mysql -u root -p 修改最大传输包 set global max_allowed_packet = 5 1024 1024*100;

    2024年02月11日
    浏览(34)
  • MySQL数据库关于表的一系列操作

    varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100) char 定长字符串(最长255位),存储空间是固定的,例如:char(10) int 整数型(最长11位) long 长整型 float 单精度 double 双精度 date 短日期,只包括年月日 datetime 长日期,包括年月日时分

    2024年02月15日
    浏览(34)
  • MySQL数据库干货_11—— MySQL中的非空约束(Not Null)

    非空约束(Not Null) 添加非空约束 使用DDL语句添加非空约束。 示例: 向 emp 表中的 salary 添加非空约束。 删除非空约束 使用DDL语句删除非空约束。 示例: 删除emp表中salary 的非空约束。 创建表时添加约束 查询表中的约束信息: 示例: 创建 depts 表包含 department_id 该列为主键且

    2024年02月07日
    浏览(37)
  • mysql数据库运行sql:datetime(0) NULL DEFAULT NULL报错【杭州多测师_王sir】

    一、错误信息 二、解决方法 问题发现是第三行,那就是datetime字段,在网上查询是mysql版本时间字段不能设置为0。给一个默认值,直接删除 (0) NULL

    2024年02月10日
    浏览(35)
  • [运维|数据库] 将mysql的null.unix_timestamp(now()) * 1000转为PostgreSQL的语法

    在 PostgreSQL 中,您可以使用以下方式将 MySQL 中的 UNIX_TIMESTAMP 和 NOW() 函数的组合转换为等效的语法: 在这个 PostgreSQL 表达式中: EXTRACT(EPOCH FROM NOW()) 获取当前时间戳的秒数。 2. * 1000 将秒数转换为毫秒。

    2024年02月07日
    浏览(42)
  • Oracle/MySQL/PG/SQL Server关系数据库中NULL与空字符串的区别

    在Oracle数据库中,\\\'\\\'(空字符串)与null是什么关系呢? \\\'\\\'(空字符串)是否会等同(或者说等价于)于null值呢?\\\'\\\'跟\\\' \\\'(长度为零的空字符串或包含一个或多个空格的空字符串)是否又等价?下面我们测试一下 如上所示,插入\\\'\\\'时,Oracle数据库确实将其等同与null,但是, 像\\\'

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包