1、同一条记录中的查询字段做拼接,将多个字符串连接成一个字符串
用到的函数:CONCAT()
语法:CONCAT(参数1, 参数2, 参数3, ........... ,参数N)
例子:
select CONCAT("A",1);
select CONCAT('PO', "_", product_number);
缺点:如有任何一个参数为NULL ,则返回值为 NULL。
所以如果发现自己拼接出来的结果是NULL的话,可以首先确定一下里面的参数是否有为NULL的可能性。
对应方法:使用IFNULL()对参数进行判断处理。例如
select CONCAT('PO', "_", IFNULL(product_number, ''));
select CONCAT('PO', "_", IFNULL(receive_amount, 0));
或者是使用以下函数
2、指定分隔符,将同一条记录中的查询字段做拼接,将多个字符串连接成一个字符串
用到的函数:CONCAT_WS()
语法:CONCAT(分隔符, 参数1, 参数2, 参数3, ........... ,参数N)
例子:
select CONCAT_WS("-",1, "abc");
select CONCAT_WS("/", 'PO', "1111");
缺点:如有分隔符为NULL,则返回结果为NULL。
优点:参数1-N如果为空,会自动转换成空字符串,而不会变成NULL
3、多条数据的字段拼接成一个字符串,需要结合GROUP BY使用
用到的函数:GROUP_CONCAT()
语法:GROUP_CONCAT(参数1, 参数2, 参数3, ........... ,参数N)
例子:
SELECT
GROUP_CONCAT(`name`, " ", CONVERT(quantity, DECIMAL(10, 0 )), "台") AS "remarks"
FROM
salesorder_detail
GROUP BY
id
缺点:跟CONCAT()函数类似,如有任何一个参数为NULL ,则返回值为 NULL。