mysql连接函数CONCAT和CONCAT_WS

CONCAT函数

格式:SELECT CONCAT(str1,str2,...) FROM [表名];

将多个字段拼接为一个字段 (字符串 str1,str2 等多个字符串合并为一个字符串,多个字符串之间用逗号分隔)

可以有很多个参数,如果参数有一个是NULL,则结果返回NULL(使用CONCAT()函数对包含NULL的数据进行拼接时,结果为NULL,所以在对数据进行拼接之前,应该先检查要拼接的字段是否存在NULL)

适合场景: 1.组合多列信息为一列  2.对列的信息进行补充

-- 结果是MySQL
SELECT CONCAT('My', 'S', 'QL');
 
-- 结果是SQL Runoob Gooogle Facebook
SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook")
 
-- 结果是Null
SELECT CONCAT('My', NULL, 'QL'); 
 
-- 一个数字参数被变换为等价的字符串形式
-- 结果是143
SELECT CONCAT(14,3);


CONCAT_WS函数

格式:SELECT CONCAT_WS(‘拼接符’,str1,str2,...) FROM [表名];

同CONCAT(s1,s2,...) 函数,但是每个字符串之间要加上拼接符

适合场景: 多字段拼接,字段间使用同样的拼接符(会自动跳过NULL)

-- 结果是red_blue_green
SELECT CONCAT_WS("_", "red", "blue", "green");
 
-- 结果是hello-word-is-fun!
SELECT CONCAT_WS("-", "hello", "world", "is", "fun!");

示例

查询 t_supplier_goods 表中,supplier_no 或者 goods_name 这两个字段中出现 “音乐” 的数据,一般想到的是用 or 

select * from t_supplier_goods where supplier_no like '%音乐%' or goods_name like '%音乐%'

这样写有个弊端,就是随着字段的增多,例如多个字段中出现“音乐” 的数据。这样sql就很难写。因此使用 CONCAT_WS 函数。

select * from t_supplier_goods where CONCAT_WS('',supplier_no,goods_name) like '%音乐%'

从效果上看,使用 or 和使用 CONCAT_WS 函数执行得到的数据是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值