MySQL如何判断字符串为NULL或者为空字符串

 更新时间:2022年08月29日 14:18:14   作者:问啥啥不会  
这篇文章主要介绍了MySQL如何判断字符串为NULL或者为空字符串,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

判断字符串为NULL或者为空字符串

函数名说明
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和空字符串区别

相信很多用了MySQL很久的人,对这两个字段属性的概念还不是很清楚

一般会有以下疑问

  • 1.字段类型是NOT NULL,为什么可以插入空值?
  • 2.NOT NULL的效率比NULL高?
  • 3.判断字段不为空的时,到底要 select * from table where column <>  还是要用 select * from table wherecolumn is not null 呢?

带着上面几个疑问,我们来深入研究一下NULL 和 NOT NULL 到底有什么不一样。

首先,我们要搞清楚“空字符串” 和 “NULL” 的概念:

  • 空值是不占用空间的。
  • MySQL中的NULL是占用空间的

打个比方来说,你有一个杯子,空值代表杯子是真空的,NULL代表杯子中装满了空气,虽然杯子看起来都是空的,但是区别是很大的。

注意事项

在进行count()统计某列的记录数的时候,如果采用的NULL值,系统会自动忽略掉,但是空值是会进行统计到其中的。

判断NULL 用IS NULL 或者 IS NOT NULL, SQL语句函数中可以使用ifnull()函数来进行处理,判断空字符用=''或者 <>''来进行处理

对于MySQL特殊的注意事项,对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是当前系统时间。插入空值,则会出现 0000-00-00 00:00:00

对于空值的判断到底是使用is null 还是='' 要根据实际情况来进行区分。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql group by 对多个字段进行分组操作

    mysql group by 对多个字段进行分组操作

    这篇文章主要介绍了mysql group by 对多个字段进行分组操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • mysql删除重复行的实现方法

    mysql删除重复行的实现方法

    这篇文章主要介绍了mysql删除重复行的实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • mysql巡检脚本(必看篇)

    mysql巡检脚本(必看篇)

    下面小编就为大家带来一篇mysql巡检脚本(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • MySQL使用Sequence创建唯一主键的实现示例

    MySQL使用Sequence创建唯一主键的实现示例

    Sequence提供了更多的灵活性,本文主要介绍了MySQL使用Sequence创建唯一主键的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • mysql中四种备份模式

    mysql中四种备份模式

    本文主要介绍了mysql中四种备份模式,无论使用哪种备份方式,都需要根据业务需求和数据量大小来选择合适的备份策略,并定期验证备份是否有效,感兴趣的可以了解一下
    2023-11-11
  • mysql慢查询日志轮转_MySQL慢查询日志实操

    mysql慢查询日志轮转_MySQL慢查询日志实操

    这篇文章主要介绍了mysql慢查询日志轮转_MySQL慢查询日志实操,文章围绕主题展开详细的内容戒杀,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • mysql函数group_concat()返回结果不全问题

    mysql函数group_concat()返回结果不全问题

    文章介绍了MySQL中使用group_concat()函数拼接返回字段时遇到的字符长度问题,分析了问题原因,并提供了两种解决方法:临时修改group_concat_max_len配置和永久修改MySQL配置文件
    2024-11-11
  • MYSQL代码 定期备份Mysql数据库

    MYSQL代码 定期备份Mysql数据库

    Mysql自动备份脚本供大家参考,实现了定期备份Mysql数据库,并且可以选在在每周的一天做指定目录下文件的全面备份,备份文件自动上传到你指定的FTP上,保证了备份的可靠性。
    2009-04-04
  • mysql错误处理之ERROR 1665 (HY000)

    mysql错误处理之ERROR 1665 (HY000)

    最近一直在mysql的各个版本直接徘徊,这中间遇到了各种各样的错误,将已经处理完毕的几个错误整理了一下,分享给大家,这次我们来看看错误提示 ERROR 1665 (HY000)
    2014-07-07
  • MySQL删除外键、增加外键以及删除主键、增加主键的实战步骤

    MySQL删除外键、增加外键以及删除主键、增加主键的实战步骤

    在Mysql中使用外键,可以有效地将多个表格的数据"联动"起来,打破独立状态,互相影响,下面这篇文章主要给大家介绍了关于MySQL删除外键、增加外键以及删除主键、增加主键的相关资料,需要的朋友可以参考下
    2022-08-08

最新评论