MySQL中concat()、concat 您所在的位置:网站首页 mysql里的函数 MySQL中concat()、concat

MySQL中concat()、concat

2023-03-12 19:33| 来源: 网络整理| 查看: 265

在平时工作中,经常记不清或者记混他们的用法,正好有时间就记录一下~

concat()函数

语法:concat(str1, str2, int1...)

例如执行sql:

SELECT CONCAT(id,USERNAME,USER_PHONE) FROM tb_user 输出查询结果为: 1test15216756754 192Test17051331386 193德庄火锅1113773670133 194南通印象13773707311 195辣五味13862768650

那如果拼接的有null值:

SELECT CONCAT(id,USERNAME,null) FROM tb_user 输出查询结果为: null null null null

结果则为null。concat()可以拼接string/int类型。但是拼接null会得到null值。

concat_ws()函数

和concat()不同的是concat_ws() 可以指定分隔符,concat_ws就是concat with separator。

注意separator不能为null,否则结果将会为null。

语法:concat_ws(separator, str1, str2, ...)

concat_ws()指定分隔符,用法如下:

SELECT CONCAT_WS('-',id,USERNAME,0,USER_EMAIL) FROM tb_user 输出查询结果为: [email protected] 192-Test-0- 193-德庄火锅[email protected] 194-南通印象[email protected]

concat()拼接null值会得到null值,concat_ws()拼接null值会忽略null值。

group_concat()函数

语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

注意:1.[]非必选项

2.group_concat只有与group by语句同时使用才能产生效果,否则所有数据会被合并成一行

3.distinct用于对拼接的结果去重;separator是一个字符串值,缺省为一个逗号。

接下来就展示group_concat()的简单用法。

我以我们公司的某个数据库的项目表为主,作为演示。

案例1

根据区域分组统计区域内的项目名称,且进行降序排序

SELECT project_region_area, GROUP_CONCAT(distinct `name` order by `name` desc separator '-') FROM tah_project GROUP BY project_region_area 输出查询结果为: 冀中区 张家口·蔚县·中节能-保定·涞水·中节能-任丘·议论堡·深能源 冀北区 天津·北辰·浙能-唐山·曹妃甸·中交-唐山·乐亭·浙能-唐山·丰润·浙能 冀南区 阳泉·郊区·锦江-邯郸·永年·中电-邢台·威县·深能源-衡水·冀州·泰达 冀西区 石家庄·行唐·中节能-石家庄·栾城·中节能-石家庄·无极·锦江 案例2

在案例1的基础上,项目名称加上项目ID展示(函数嵌套使用)

SELECT project_region_area, GROUP_CONCAT(CONCAT_WS('-', id, name) order by id desc) FROM tah_project GROUP BY project_region_area 输出查询结果为: 冀中区 189-张家口·蔚县·中节能,134-任丘·议论堡·深能源,133-保定·涞水·中节能 冀北区 176-唐山·曹妃甸·中交,123-天津·北辰·浙能,122-唐山·乐亭·浙能,115-唐山·丰润·浙能 冀南区 217-衡水·冀州·泰达,180-邯郸·永年·中电,135-邢台·威县·深能源,121-阳泉·郊区·锦江 冀西区 203-石家庄·行唐·中节能,182-石家庄·栾城·中节能,124-石家庄·无极·锦江

以上就是group_concat()的简单使用啦。

根据自己需要改动哦~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有