MySQL中concat函数

今天看代码中遇到了 MySQL 中 concat 函数,在网上查询了些资料,特来记录下;

函数:concat(str1,str2,...)

作用: 将两个或多个字符进行拼接

参数:当所有字符串都存在时,会按着参数顺序输出表信息,

注意:如果有一个参数为null ,查询结果则为null;如查询多条数据时,行内拼接字段中有个null 的,则该行返回 null

举例:

这里有一份小说数据表,我们将书名按照: 《书名》-作者 - 发行方式 的格式输出

表内容

   

输入查询语句开始查询:

SELECT id,CONCAT('《',title,'》',' - ',NAME, ' - ',publish) AS bookAuthor FROM demo01

  查询结果:

 

查看结果中有的行显示了 null ,这不是我们想看到的结果,因为该函数 CONCAT() 接收的参数如有 null 则返回 null ,那我们就要想办法去处理,解决这个问题有两个方法:

处理方法1: 不建议在数据库中存储数据的时候,不要存null值,最好是给该列设置一个默认值,因为如果某一列存在null值,则该列的创建的索引将会失效,null的查询效率低。

处理方式2:修改SQL查询语句,用 ifnull(参数1,参数2) 做判断: 该函数的用处是判断一个字段是否为null,如果为null,第二个参数则为该字段指定一个默认值。

    方法2修改后的 SQL 语句:

SELECT id,CONCAT('',title,'',' - ',NAME, ' - ',IFNULL(publish, '未知')) AS bookAuthor FROM demo01

执行结果:

 

参考:

  https://www.cnblogs.com/zsliu/p/8745086.html

  https://www.yiibai.com/mysql/mysql-concat-function.html

     https://blog.csdn.net/qq_34436819/article/details/81154028

posted @ 2018-11-22 13:01  梦缘&江南~  阅读(349)  评论(0)    收藏  举报