MySQL字符串拼接函数使用

文章目录

        • 测试数据
        • 1、CONCAT(直接拼接函数)
        • 2、CONCAT_WS(使用指定的分割符去拼接字符串)
        • 3、GROUP_CONCAT(将查询的数据先行直接连接,然后将列通过指定的分割符拼接)
        • 4、REPEAT(复制指定字符串指定次数)

测试数据

SELECT id,login_name,real_name FROM `iam_user` where id in (17,18,19)
id login_name real_name
17 uat_test02 测试账号2
18 uat_test03 测试账号03
19 uat_test04 测试账号04

1、CONCAT(直接拼接函数)

语法:CONCAT(str1,str2…)

案例:

SELECT  CONCAT(id,login_name,real_name) AS result FROM `iam_user` where id in (17,18,19)
result
17uat_test02测试账号2
18uat_test03测试账号03
19uat_test04测试账号04

注意:CONCAT函数的参数不可以是NULL,否则只要有一个是NULL,返回值就是NULL

2、CONCAT_WS(使用指定的分割符去拼接字符串)

语法:CONCAT_WS(separator,str1,str2…)

案例:

SELECT  CONCAT_WS(',',id,login_name,real_name) AS result FROM `iam_user` where id in (17,18,19)
result
17,uat_test02,测试账号2
18,uat_test03,测试账号03
19,uat_test04,测试账号04

注意:CONCAT_WS函数的separator参数不可以是NULL,否则返回值就是NULL,待拼接字符串如果为NULL,则不影响其他字符串的拼接

3、GROUP_CONCAT(将查询的数据先行直接连接,然后将列通过指定的分割符拼接)

语法:GROUP_CONCAT([DISTINCT] str1,str2… [ORDER BY str1 ASC/DESC ,str2 ASC/DESC…] [SEPARATOR ‘separator’])

SELECT GROUP_CONCAT(DISTINCT id,login_name,real_name ORDER BY id DESC SEPARATOR ',') AS result FROM `iam_user` where id in (17,18,19)

案例:

result
19uat_test04测试账号04,18uat_test03测试账号03,17uat_test02测试账号2

注意:CONCAT_CONCAT函数的separator参数可以是没有的,只有待拼接字符串时,默认的separator是 ‘,’

4、REPEAT(复制指定字符串指定次数)

语法:REPEAT(str,num)

案例:

SELECT REPEAT(id,2) AS result FROM `iam_user` where id in (17,18,19)
result
1717
1818
1919

注意:REPEAT函数的num参数不可以是NULL,否则返回值就是NULL

你可能感兴趣的:(MySQL,笔记,SQL)