mysql中CONCAT()的用法

先讲讲在工作上的一个用法。

生产上,用户晒单后,其中一个表中一个字段没有维护,打算手动用sql把线上一个月的数据维护一下。

用到了concat()函数,拼接生成update语句:

SELECT CONCAT('update gshop_order_product set isSun=1 where id=',order_product_id,';') FROM gshop_comments WHERE object_type IN(2,3) AND display IN (-2,-1,1) AND time >=UNIX_TIMESTAMP() - 30 * 86400

这样,就会拼接生产需要执行的update语句,找运维运行,就完成了工作。

那就来讲讲concat函数:

使用方法:CONCAT(str1,str2,…) 

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

如果所有参数均为非二进制字符串,则结果为非二进制字符串。 

如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。

一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:

SELECT CONCAT(CAST(int_xxx AS CHAR), char_col)

MySQL的concat函数可以连接一个或者多个字符串,如

mysql> SELECT CONCAT('my', 's', 'ql');
-> 'mysql'
mysql> SELECT CONCAT('my', NULL, 'ql');
-> NULL
mysql> SELECT CONCAT(14.3);

扫描二维码关注公众号,回复: 3621218 查看本文章

-> '14.3'

延伸:讲讲MySQL中concat_ws函数

使用方法:CONCAT_WS(separator,str1,str2,...)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

注意:

如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

如连接后以逗号分隔

mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
-> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');

-> 'First name,Last Name'

mysql CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

猜你喜欢

转载自blog.csdn.net/zouxucong/article/details/79473254