目录判断字符串为NULL或者为空字符串Mysql中NULL和空字符串区别一般会有以下疑问注意事项判断字符串为NULL或者为空字符串 函数名说明ISNULL(expr)如果expr为null返回值1,否则返回值为0IFNU
函数名 | 说明 |
---|---|
ISNULL(expr) | 如果expr为null返回值1,否则返回值为0 |
IFNULL(expr1,expr2) | 如果expr1值为null返回expr2的值,否则返回expr1的值 |
NULLIF(expr1,expr2) | 如果expr1==expr2返回值为null,否则返回expr1的值;相当于case when expr1=expr2 then null else expr1 end |
COALESCE | 返回传入的参数中第一个非null的值 |
IF(expr1,expr2,expr3) | 如果expr1的值为true,则返回expr2的值,否则返回expr3的值 |
例:
查找学生姓名不为null的学生信息
SELECT * FROM student WHERE ISNULL(stu_name) <1
SELECT * FROM student WHERE stu_name is not null
查询学生成绩,若score为null则返回0
SELECT IFNULL('score',0) FROM stu_score
SELECT COALESCE('score',0) FROM stu_score
SELECT IF(IFNULL('score',null)=null,0,score) FROM stu_score
SELECT CASE WHEN score is null THEN 0 ELSE score END AS score FROM stu_score
相信很多用了Mysql很久的人,对这两个字段属性的概念还不是很清楚
带着上面几个疑问,我们来深入研究一下NULL 和 NOT NULL 到底有什么不一样。
首先,我们要搞清楚“空字符串” 和 “NULL” 的概念:
打个比方来说,你有一个杯子,空值代表杯子是真空的,NULL代表杯子中装满了空气,虽然杯子看起来都是空的,但是区别是很大的。
在进行count()统计某列的记录数的时候,如果采用的NULL值,系统会自动忽略掉,但是空值是会进行统计到其中的。
判断NULL 用IS NULL 或者 IS NOT NULL, SQL语句函数中可以使用ifnull()函数来进行处理,判断空字符用=''或者 <>''来进行处理
对于MySQL特殊的注意事项,对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是当前系统时间。插入空值,则会出现 0000-00-00 00:00:00
对于空值的判断到底是使用is null 还是='' 要根据实际情况来进行区分。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
--结束END--
本文标题: MySQL如何判断字符串为NULL或者为空字符串
本文链接: https://www.lsjlt.com/news/33907.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-10
2024-05-09
2024-05-09
2024-05-09
2024-05-09
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0