MySQL的字符串连接函数CONCAT, CONCAT_WS,GROUP_CONTACT

本文转载自de.cel《MySQL的字符串连接函数CONCAT, CONCAT_WS,GROUP_CONCAT》

在搜索Mysql中怎么实现把一列的多行数据合并成一行时,找到了group_contact函数,它比SqlServer中的select @[email protected]+列名 from 表名,的形式方便了许多,在此把字符串连接函数小小的总结一下。

CONCAT(str1, str2,...): 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

CONCAT_WS(separator,str1,str2,...): CONCAT With Separator ,是CONCAT()的特殊形式。 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。 e.g:

mysql > SELECT CONCAT_WS(‘,‘,‘First Name‘,NULL,‘Last Name‘);  -> First Name,Last Name

GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符‘]): 可以用来行转列。 e.g: 
mysql> select * from tb;
 +------+------+ 
| id | name | 
+------+------+ 
| 1 | 10 | 
| 1 | 20 | 
| 1 | 20 | 
| 2 | 20 | 
| 3 | 200 | 
| 3 | 500 | 
+------+------+

myql> select id,group_concat(name) from tb group by id;

+------+--------------------+ 
| id | group_concat(name) | 
+------+--------------------+ 
| 1 | 10,20,20 | 
| 2 | 20           | 
| 3 | 200,500 | 
+------+--------------------+

mysql> select id,group_concat(name separator ‘;‘) from tb group by id;

+------+----------------------------------+ 
| id | group_concat(name separator ‘;‘) 
| +------+----------------------------------+ 
| 1 | 10;20;20 | 
| 2 | 20         | 
| 3 | 200;500 | 
+------+----------------------------------+

mysql> select id,group_concat(distinct name) from tb group by id;

+------+-----------------------------+ 
| id | group_concat(distinct name) | 
+------+-----------------------------+ 
| 1 | 10,20     | 
| 2 | 20           | 
| 3 | 200,500 | 
+------+-----------------------------+

时间: 2024-10-31 16:06:28

MySQL的字符串连接函数CONCAT, CONCAT_WS,GROUP_CONTACT的相关文章

Mysql字符串连接函数 CONCAT()与 CONCAT_WS()

从数据库里取N个字段,然后组合到一起用“,”分割显示,起初想到用CONCAT()来处理,好是麻烦,没想到在手册里居然有提到 CONCAT_WS(),非常好用. CONCAT_WS(separator, str1, str2,...) 它是一个特殊形式的 CONCAT().第一个参数剩余参数间的分隔符.分隔符可以是与剩余参数一样的字符串.如果分隔符是 NULL,返回值也将为 NULL.这个函数会跳过分隔符参数后的任何 NULL 和空字符串.分隔符将被加到被连接的字符串之间 简单例子如下: mysq

mysql的字符串处理函数

一.简明总结ASCII(char) 返回字符的ASCII码值BIT_LENGTH(str) 返回字符串的比特长度CONCAT(s1,s2…,sn) 将s1,s2…,sn连接成字符串CONCAT_WS(sep,s1,s2…,sn) 将s1,s2…,sn连接成字符串,并用sep字符间隔INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果FIND_IN_SET(str,list) 分析逗号分隔的list列表,如果发现str,返回st

mysql常见字符串处理函数结束

1 一.简明总结 2 ASCII(char) 返回字符的ASCII码值 3 BIT_LENGTH(str) 返回字符串的比特长度 4 CONCAT(s1,s2…,sn) 将s1,s2…,sn连接成字符串 5 CONCAT_WS(sep,s1,s2…,sn) 将s1,s2…,sn连接成字符串,并用sep字符间隔 6 INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果 7 FIND_IN_SET(str,list) 分析逗号分隔

mysql常用字符串操作函数大全

测试表 CREATE TABLE `string_test` ( `id` int(11) NOT NULL auto_increment COMMENT '用户ID', `name` varchar(50) NOT NULL default '' COMMENT '名称', `job` varchar(23) NOT NULL COMMENT '工作', `sex` tinyint(1) NOT NULL default '1' COMMENT '性别', `hobby` varchar(10

mysql常用字符串操作函数大全,以及实例

今天在论坛中看到一个关于mysql的问题,问题如下 good_id     cat_id12654         665,56912655         601,4722 goods_id是商品idcat_id是分类id当我,怎么根据这种分类ID查数据(一个商品有多个分类,而且用逗号隔开了)我现在用的是like 这样的话,输入一个分类id是688,或者4722都能出来这个商品,但输入一个722也出来这个商品了. 如果用like做的话,肯定会有问题的,我的开始的想法是,把cat_id里面的字符

Oracle的字符连接函数 concat 和 || 的区别

总结:concat 只能连接两个字符串,|| 可以连接多个 /* CONCAT只能连接两个字符串 The syntax for the concat function is: concat( string1, string2 ) string1 is the first string to concatenate. string2 is the second string to concatenate. */ --||可以连接多个字符串 SQL> select concat('CSDN','_y

pandas的连接函数concat()函数

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,   keys=None, levels=None, names=None, verify_integrity=False,   copy=True) 参数含义 objs:Series,DataFrame或Panel对象的序列或映射.如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文).任何无对象将被静默删除,除非

MySQL字符串连接函数

一.CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. select concat(s_id, "--", s_bar_code) from `t_storage_order_detail` WHERE `s_sn` LIKE '%R2016091200002%' LIMIT 0, 1000; +--------------------------------+| concat(s_id, "--&qu

SQL— CONCAT(字符串连接函数)

有的时候,我们有需要将由不同栏位获得的资料串连在一起.每一种资料库都有提供方法来达到这个目的: MySQL: CONCAT() Oracle: CONCAT(), || SQL Server: + CONCAT() 的语法如下: CONCAT(字串1, 字串2, 字串3, ...): 将字串1.字串2.字串3,等字串连在一起. 请注意,Oracle的CONCAT()只允许两个参数: 换言之,一次只能将两个字串串连起来.不过,在Oracle中,我们可以用'||'来一次串连多个字串. 来看几个例子.