MySQL中concat()、concat | 您所在的位置:网站首页 › mysql里的函数 › MySQL中concat()、concat |
在平时工作中,经常记不清或者记混他们的用法,正好有时间就记录一下~ 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 实验室设备网 版权所有 |