网站首页 > 技术文章 正文
运算符:!=、<>、is not
在MySQL中!= 和 <> 的功能一致,在sql92规范中的建议是使用:!=,新的规范中建议使用: <>。但是不管是!=还是<>都无法和 NULL 配合使用来查询数据,这个时候就需要使用is not。
我们来看一个简单的示例。
// <>、!=配合非null的值查找数据
SELECT * FROM user WHERE userName <> "li.zhou"
SELECT * FROM user WHERE userName != "li.zhou"
// is not 配合 null 查出userName不是null的数据
SELECT * FROM user WHERE userName is not null
运算符:=、<=>、is
is 专门用来判断是否为 NULL,而 = 则是用来判断NULL以外的所有数据类型,而 <=> 就是他们2个结合体。所以当传入的参数存在NULL的可能的情况下,一定要使用 <=> 而不是 =。
另外当两个可能存在NULL的列进行比较的时候,比如列A和列B,当A和B均为NULL的时候,A = B 返回的是false,而 A <=> B 的结果则是 true。
最后,<=> 只用于MySQL数据库,其他数据库是不支持的,千万要注意。
最后我们再看来一个示例:
先准备一个表格,如下:
+----+-----------+----------+
| id | userName | password |
+----+-----------+----------+
| 1 | li.zhou | NULL |
| 2 | NULL | abc |
| 3 | NULL | NULL |
先运行3个输入不为NULL的sql命令:
// 能找到数据
SELECT * FROM user WHERE userName = "li.zhou"
// 直接执行异常
SELECT * FROM user WHERE userName is "li.zhou"
// 能找到数据
SELECT * FROM user WHERE userName <=> "li.zhou"
再运行3个输入为NULL的sql命令
// 不能找到数据
SELECT * FROM user WHERE userName = null
// 能找到数据
SELECT * FROM user WHERE userName is null
// 能找到数据
SELECT * FROM user WHERE userName <=> null
最后再运行2个进行比较的sql
// 不能找到数据
SELECT * FROM user WHERE userName = password
// 能找到第三条数据
SELECT * FROM user WHERE userName <=> password
猜你喜欢
- 2025-03-19 Mysql创建用户和权限管理(mysql创建用户和权限管理的区别)
- 2025-03-19 MySQL之慢查询日志分析(mysql产生慢日志的主要原因)
- 2025-03-19 为什么我们禁止了MySQL深分页查询?原理分析与实战优化
- 2025-03-19 《MySQL必知必会》_笔记03(mysql必知必会 百度云)
- 2025-03-19 MySQL数据库性能优化(mysql5.7性能优化)
- 2025-03-19 Mysql 数据库运维方案(mysql运维内参)
- 2025-03-19 Mysql高性能优化笔记(含578页笔记PDF文档),收藏了
- 2025-03-19 MySQL数据库竟能自动同步?打造双保险备份方案,运维半夜笑醒
- 2025-03-19 一条简单的更新语句,MySQL是如何加锁的?
- 2025-03-19 mysql表分区实现-range(mysql分区和分表优缺点)
- 04-263款 .NET 开源的编辑器,包含代码、文本和Markdown编辑功能!
- 04-26Markdown 格式如何转换成 Word?
- 04-26jupyter lab修改默认文件目录
- 04-26一款优秀的微信Markdown编辑神器及私有化部署流程
- 04-26PDF文件转markdown格式软件Marker1.6.1版整合包下载
- 04-26Microsoft MarkItDown:使用Llama库将 Office 文件转换为 Markdown
- 04-26Web Essentials之Markdown和自定义编辑器
- 04-26只要多加这样一句提示词,就能让DeepSeek帮你生成下载各种文档!
- 最近发表
-
- 3款 .NET 开源的编辑器,包含代码、文本和Markdown编辑功能!
- Markdown 格式如何转换成 Word?
- jupyter lab修改默认文件目录
- 一款优秀的微信Markdown编辑神器及私有化部署流程
- PDF文件转markdown格式软件Marker1.6.1版整合包下载
- Microsoft MarkItDown:使用Llama库将 Office 文件转换为 Markdown
- Web Essentials之Markdown和自定义编辑器
- 只要多加这样一句提示词,就能让DeepSeek帮你生成下载各种文档!
- java使用pandoc将markdown转换为word文档
- android上的markdown软件比较
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)