SQL 的三值逻辑 (TRUE/FALSE/UNKNOW。)

前言 工作中要删除 运营表示username="张三"的数据有5条,某张表中username<>"张三"的数据,username的默认值为null,但是笔者在进行查询时username="张三"比username=<>张三少了100多条数据,故发现sql存在三值逻辑。

在 SQL 中,比较 NULL 值时需要特别注意,因为 NULL 与任何值(包括它自身)的比较结果都是未知(UNKNOWN),而不是 true 或 false。这是 SQL 中的三值逻辑的特性之一。

因此,如果你执行 username <> ‘张三’ 这样的比较,对于那些用户名为 NULL 的记录,比较结果将是未知。根据 SQL 的三值逻辑,未知的结果将被视为不满足条件(即不为 true),因此这些记录会被过滤掉。
为了包括 NULL 值的记录,你可以使用 IS NULL 或 IS NOT NULL 条件来显式地处理 NULL 值

  • 最后解决办法(username default null)
 (username!="张三" or username is null)

相关推荐

  1. SQL 逻辑 (TRUE/FALSE/UNKNOW。)

    2024-04-27 03:48:01       15 阅读
  2. SQL进阶 | 逻辑与NULL

    2024-04-27 03:48:01       33 阅读
  3. 逻辑回归输出为什么可以作为概率?

    2024-04-27 03:48:01       32 阅读
  4. 企业估种方法

    2024-04-27 03:48:01       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-27 03:48:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-27 03:48:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-27 03:48:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-27 03:48:01       18 阅读

热门阅读

  1. Nginx高级配置与重写规则详解:从入门到实践

    2024-04-27 03:48:01       14 阅读
  2. Vue2之computed VS methods

    2024-04-27 03:48:01       11 阅读
  3. 为什么 GraphQL 可以取代 Redux?

    2024-04-27 03:48:01       14 阅读
  4. 什么是graphQL

    2024-04-27 03:48:01       12 阅读
  5. 内网pth横向渗透思路笔记

    2024-04-27 03:48:01       14 阅读
  6. vue用法示例(三)

    2024-04-27 03:48:01       11 阅读
  7. [Android]Jetpack Compose自定义主题

    2024-04-27 03:48:01       10 阅读
  8. STM32 JTAG

    2024-04-27 03:48:01       13 阅读
  9. 好用的项目管理系统推荐,项目人必看!

    2024-04-27 03:48:01       12 阅读
  10. 鸿蒙小案例-搜索高亮

    2024-04-27 03:48:01       13 阅读