已解决
SQL中 <>(不等于)运算符只会匹配那些具有非空值的记录
来自网友在路上 148848提问 提问时间:2023-11-02 14:49:54阅读次数: 48
最佳答案 问答题库488位专家为你答疑解惑
0. 场景
一张表的有有个varchar类型的flag字段,字段值有 null
值/空
值和 '1'
。
flag为 1即表示逻辑删除,我想找出flag字段非 1 的所有情况:
- 一开始sql写法:
- select * from table where flag<>‘1’
- 理想情况,结果集应该有2条记录(id为 2 和 3 的记录)
- 实际情况只出现了 id为 3 的记录,即flag为空值的记录
1. 解释
在SQL中,使用 <>(不等于)运算符时,它只会匹配那些具有非空值的记录。如果某个字段的值为 NULL,它实际上是未知的,因此无法确定它是否等于任何特定的值,包括 ‘1’。
要包括 NULL 值,你可以使用 IS NULL 条件。因此,你可以使用以下查询来获取 flag字段值不等于 ‘1’ 或者为 NULL 的记录:
select * from table where flag<>‘1’ or flag is null
查看全文
99%的人还看了
相似问题
- django ModelSerializer自定义显示字段
- 替换sql,某个字段特定容
- Java之反射获取和赋值字段
- java mybatisplus generator 修改字段类型
- 使用用户代理字段进行浏览器检测(判断页面运行环境)
- js数组操作——对象数组根据某个相同的字段分组
- spring boot加mybatis puls实现,在新增/修改时,对某些字段进行处理,使用的@TableField()
- 【IDEA 使用easyAPI、easyYapi、Apifox helper等插件时,导出接口文档缺少代码字段注释的相关内容、校验规则的解决方法】
- mysql取出组内按照某时间最新一条数据的其他字段
- 基于geotools24.0的创建自动增长主键id字段的方法
猜你感兴趣
版权申明
本文"SQL中 <>(不等于)运算符只会匹配那些具有非空值的记录":http://eshow365.cn/6-30268-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!