MySQL中CONCAT()函数拼接出现NULL的问题解决

项目中查询用到了concat()拼接函数,在此查询中出现了拼接的字段为null的情况,拼接结果为null在应用层报了空指针异常。

SELECT CONCAT('1,',NULL,'2') result;

SELECT CONCAT('1,','','2') result;

通过实践证明CONCAT()函数拼接时如果拼接的参数中有NULL时,结果为NULL。

使用以下方式来解决

方法一:使用IFNULL函数如果是NULL将其置为''空字符串。

SELECT CONCAT('1,',IFNULL(NULL,''),'2') result;

方法二:使用CONCAT_WS函数。指定有分隔符的字符串连接

SELECT CONCAT_WS(',','1',NULL,'2') result;

指定使用逗号进行分隔

CONCAT_WS(分隔符,参数1,参数2,...参数n)与CONCAT(参数1,参数2,...参数n)

两个函数的区别:

CONCAT_WS():表示concat with separator,即有分隔符的字符串连接

CONCAT():表示将字符串进行连接

两个最重要的区别就是,CONCAT()函数,拼接参数中存在NULL直接返回NULL

而CONCAT_WS()函数在执行的时候,不会因为NULL值而返回NULL

到此这篇关于MySQL中CONCAT()函数拼接出现NULL的问题解决的文章就介绍到这了,更多相关MySQL CONCAT()拼接出现NULL内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Mysql中的concat函数(拼接函数)详解

    目录 Mysql中的concat函数(拼接函数) 概述 Mysql Concat函数 Mysql Concat_Ws函数 Mysql中的concat函数(拼接函数) 概述 很多时候,我们需要将不同地方获得的字符串拼接在一起,此时就需要使用CONCAT和CONCAT_WS函数 要连接两个或多个引用的字符串值,请将字符串放在一起,如下所示: mysql> SELECT 'MySQL ' 'String ' 'Concatenation'; +----------------------------+

  • mysql函数拼接查询concat函数的使用方法

    如下所示: //查询表managefee_managefee的年year 和 month ,用concat函数拼成year-month.例如将2017和1 拼成2017-01.. select CONCAT(a.year,'-',if(a.month<=9,CONCAT('0',a.month),a.month))as date,a.* from managefee_managefee as a; //查询managefee_managefee中时间段为2017-01到2017-07的数据 se

  • 详解MySQL拼接函数CONCAT的使用心得

    前几篇文章给大家介绍了MySQL中的替换函数(Replace).切分函数(SubString),今天我们一起来看看MySQL专业拼接"字符串"的函数:concat.老规矩,有好的建议和想法,记得写到评论中,等我上班摸鱼时,跟大家一起吃瓜~ 一.concat函数相关的几种用法 1-1.函数:concat(str1,str2,-) concat 函数一般用在SELECT 查询语法中,用于修改返回字段内容,例如有张LOL英雄信息表如下 mysql> select * from `LOL

  • MySQL拼接字符串函数GROUP_CONCAT详解

    上一篇文章 跨表更新,看到自己写的SQL像个憨憨写了关于跨表个更新的内容.一年过的很快,文中后来的两位员工 馮大 和 馮二 也要面对无情的 KPI 考核了,他们工作干的很不错,performance 分别是 4 和 5 新需求来了,静悄悄的来了!!! 领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要逗号拼接成一个字符串,也就是说要得到下面的结果: 要将结果集中某个指定的列进行字符串拼接,这要怎么做呢?主角闪亮✨登场 GROUP_CONCAT(expr) 在 Mysql

  • MySQL中CONCAT()函数拼接出现NULL的问题解决

    项目中查询用到了concat()拼接函数,在此查询中出现了拼接的字段为null的情况,拼接结果为null在应用层报了空指针异常. SELECT CONCAT('1,',NULL,'2') result; SELECT CONCAT('1,','','2') result; 通过实践证明CONCAT()函数拼接时如果拼接的参数中有NULL时,结果为NULL. 使用以下方式来解决 方法一:使用IFNULL函数如果是NULL将其置为''空字符串. SELECT CONCAT('1,',IFNULL(N

  • 详解MySQL中concat函数的用法(连接字符串)

    MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQ

  • 浅谈mysql中concat函数,mysql在字段前/后增加字符串

    MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQ

  • mysql中find_in_set函数的基本使用方法

    前言 这是我最近新接触到的一个函数, 我在项目中的使用场景是这样的: 有一个应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,parentIds由多个父级id拼接而成由","分隔. 组长告知我可以使用该函数,就去进行了了解与使用. 语法 FIND_IN_SET(str,strlist) 定义 假如字符串str在由多个子链组成的字符串列表strlist中,则返回值的范围在1到N之间. 一个字符串列表就是一个由

  • MySQL中json_extract()函数的使用实例

    目录 MySQL中json_extract()函数的使用 一.初始化 二.执行json_extract() MySql中json_extract函数的一个特殊之处 在MySql中,是这样的 而在Oracle中,是这样的 MySQL中json_extract()函数的使用 作用:截取数据库中指定字段中存储的json数据中的某个字段对应的值 要做做什么?(根据数据库中相关表字段中存储的json格式的数据,然后以SQL语句的形式取出其中指定key对应的值,最终整理汇总为一张视图供以后的方便使用) 一.

  • mysql中find_in_set()函数的使用及in()用法详解

    MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以","分隔 如 (1,2,6,8,10,22) 查询字段(strlist)中包含(str)的结果,返回结果为null或记录 假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间. 一个字符串列表就是一个由一些被 ',' 符号分开的子链组成的字符串.如果第一个参数是一个常数字符串,而第

  • mysql中find_in_set()函数的使用详解

    首先举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文等等 . 现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那我们如何用sql查找所有type中有4的图文类型的文章呢?? 这就要我们的 find_in_set 出马的时候到了.以下为引用的内容: select * from article where FIND_IN_SET('4',type) --------------------------------

  • MySQL中ROUND函数进行四舍五入操作陷阱分析

    本文实例讲述了MySQL中ROUND函数进行四舍五入操作陷阱.分享给大家供大家参考,具体如下: 在MySQL中, ROUND 函数用于对查询结果进行四舍五入,不过最近使用ROUND函数四舍五入时意外发现并没有预期的那样,本文将这一问题记录下来,以免大家跟我一样犯同样的错误. 问题描述 假如我们有如下一个数据表 test ,建表语句如下 CREATE TABLE test ( id int(11) NOT NULL AUTO_INCREMENT, field1 bigint(10) DEFAULT

  • 详解 MySQL中count函数的正确使用方法

    1. 描述 在MySQL中,当我们需要获取某张表中的总行数时,一般会选择使用下面的语句 select count(*) from table; 其实count函数中除了*还可以放其他参数,比如常数.主键id.字段,那么它们有什么区别?各自效率如何?我们应该使用哪种方式来获取表的行数呢? 当搞清楚count函数的运行原理后,相信上面几个问题的答案就会了然于胸. 2. 表结构 为了解决上述的问题,我创建了一张 user 表,它有两个字段:主键id和name,后者可以为null,建表语句如下. CRE

随机推荐