mysql中替代null的IFNULL()与COALESCE()函数详解

在MySQL中isnull()函数不能作为替代null值!

如下:

首先有个名字为business的表:

SELECT ISNULL(business_name,'no business_name') AS bus_isnull FROM business WHERE id=2

直接运行就会报错:

错误代码: 1582

Incorrect parameter count in the call to native function 'isnull'

所以,isnull()函数在mysql中就行不通了。可以用ifnull()coalesce()代替。如下:

使用ifnull()函数:

SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=2

运行结果:

当查询的值不为null时:

SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=1

结果如下:

使用coalesce()函数:

SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=2

结果如下:

当查询值不为null时:

SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=1

其中:coalesce()还可以返回第一个不为null的值。如下:

SELECT COALESCE(business_name,district_id,id) AS bus_coalesce FROM business WHERE id=2

那么,isnull()在mysql中怎么用呢?答案就是用在where后面。如下:

SELECT * FROM business WHERE ISNULL(business_name)

结果如下:

同样,is null is not null 也是用在where后面。

SELECT * FROM business WHERE business_name IS NULL

结果如下:

SELECT * FROM business WHERE business_name IS NOT NULL

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • mysql中coalesce()的使用技巧小结

    前言 最近无意间发现mysql的coalesce,又正好有时间,就把mysql中coalesce()的使用技巧总结下分享给大家,下面来一起看看详细的介绍: coalesce()解释 返回参数中的第一个非空表达式(从左向右依次类推): 使用示例 a,b,c三个变量. select coalesce(null,2,3); // Return 2 select coalesce(null,null,3); // Return 3 select coalesce(1,2,3); // Return 1

  • mysql中替代null的IFNULL()与COALESCE()函数详解

    在MySQL中isnull()函数不能作为替代null值! 如下: 首先有个名字为business的表: SELECT ISNULL(business_name,'no business_name') AS bus_isnull FROM business WHERE id=2 直接运行就会报错: 错误代码: 1582 Incorrect parameter count in the call to native function 'isnull' 所以,isnull()函数在mysql中就行不

  • 浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to common_user@'%' grant delete on testdb.* to c

  • MySQL中Decimal类型和Float Double的区别(详解)

    MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值. float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理.这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12. 幸好mysql提供

  • Mysql注入中的outfile、dumpfile、load_file函数详解

    在利用sql注入漏洞后期,最常用的就是通过mysql的file系列函数来进行读取敏感文件或者写入webshell,其中比较常用的函数有以下三个 into dumpfile() into outfile() load_file() 我们本次的测试数据如下 读写文件函数调用的限制 因为涉及到在服务器上写入文件,所以上述函数能否成功执行受到参数 secure_file_priv 的影响.官方文档中的描述如下 翻译一下就是 其中当参数 secure_file_priv 为空时,对导入导出无限制 当值为一

  • MySQL中增删改查操作与常见陷阱详解

    目录 本文导读 一.MySQL的增删改查 1.insert语句 2.delete语句 3.update语句原理 4.select 二.15种MySQL数据操作语句 1.REPLACE语句 2.CALL语句 3.TABLE语句 4.WITH语句 三.MySQL查询陷阱 总结 本文导读 本文作为MySQL系列第二篇文章,详细讲解了MySQL的增删改查的语句.语义和一些我们经常在开发工作中暴露的问题,MySQL的增删改查又叫数据操作语句,本文有讲些了一些常用的数据操作语句,select语句后续将作为一

  • MySQL中int(10)和int(11)的区别详解

    目录 一.背景 二.MySQL整数类型 总结: 一.背景 在创建数据库表的时候,我们经常会用到int(x)来定义一个字段的类型,一直误以为这里的x表示存储数字的长度. 其实大错特错,这里的 x 指的是 最大显示宽度(最大有效显示宽度是255),且显示宽度与存储大小或类型包含的值的范围无关. 二.MySQL整数类型 类型 字节 取值范围 显示宽度 tinyint 1 -128 ~ 127 4 smallint 2 -32768 ~ 32767 6 mediumint 3 -8388608 ~ 83

  • SQL Server COALESCE函数详解及实例

    SQL Server COALESCE函数详解 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,本文主要讲解其中的一些基本使用:  首先看看联机丛书的简要定义: 返回其参数中第一个非空表达式语法: COALESCE ( expression [ ,...n ] ) 如果所有参数均为 NULL,则 COALESCE 返回 NULL.至少应有一个 Null 值为 NULL

  • MySQL数据库学习之排序与单行处理函数详解

    目录 1.排序 2.单行处理函数 内容转小写 内容转大写 取子串 字符串拼接 求长度 去除前后空白 四舍五入 生成随机数 空转换 1.排序 示例表内容见此篇文章 Mysql支持数据排序操作,例如,现在我们按照工资从小到大进行排序操作: mysql> select ename,sal from emp order by sal; +--------+---------+ | ename | sal | +--------+---------+ | SMITH | 800.00 | | JAMES

  • 对python中的os.getpid()和os.fork()函数详解

    如下所示: import os import sys import time processNmae = 'parent' print "Program executing ntpid:%d,processNmae:%s"%(os.gitpid(),processNmae) #attempt to fork child process try: forkPid = os.fork() except OSError: sys.exit("Unable to create new

  • MySQL中索引与视图的用法与区别详解

    前言 本文主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 索引 一.概述 所有的Mysql列类型都可以被索引. mysql支持BTREE索引.HASH索引.前缀索引.全文本索引(FULLTEXT)[只有MyISAM引擎支持,且仅限于char,varchar,text列].空间列索引[只有MyISAM引擎支持,且索引的字段必须非空],但不支持函数索引. MyISAM和InnoDB存储引擎的表默认创建BTREE索引,

随机推荐