MYSQL_连接字符串函数

1、concat

()函数

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

mysql> select concat(‘10‘);

+--------------+

| concat(‘10‘) |

+--------------+

| 10 |

+--------------+

1 row in set (0.00 sec)

mysql> select concat(‘11‘,‘22‘,‘33‘);

+------------------------+

| concat(‘11‘,‘22‘,‘33‘) |

+------------------------+

| 112233 |

+------------------------+

1 row in set (0.00 sec)

而Oracle的concat函数只能连接两个字符串

SQL> select concat(‘11‘,‘22‘) from dual;

1.2 MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL

mysql> select concat(‘11‘,‘22‘,null);

+------------------------+

| concat(‘11‘,‘22‘,null) |

+------------------------+

| NULL |

+------------------------+

1 row in set (0.00 sec)

而Oracle的concat函数连接的时候,只要有一个字符串不是NULL,就不会返回NULL

SQL> select concat(‘11‘,NULL) from dual;

CONCAT

--

11

2、concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接

如连接后以逗号分隔

mysql> select concat_ws(‘,‘,‘11‘,‘22‘,‘33‘);

+-------------------------------+

| concat_ws(‘,‘,‘11‘,‘22‘,‘33‘) |

+-------------------------------+

| 11,22,33 |

+-------------------------------+

1 row in set (0.00 sec)

和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL

mysql> select concat_ws(‘,‘,‘11‘,‘22‘,NULL);

+-------------------------------+

| concat_ws(‘,‘,‘11‘,‘22‘,NULL) |

+-------------------------------+

| 11,22 |

+-------------------------------+

1 row in set (0.00 sec)

3、group_concat()可用来行转列, Oracle没有这样的函数

完整的语法如下

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符‘])

如下例子

mysql> select * from aa;

+------+------+

| id | name |

+------+------+

| 1 | 10 |

| 1 | 20 |

| 1 | 20 |

| 2 | 20 |

| 3 | 200 |

| 3 | 500 |

+------+------+

6 rows in set (0.00 sec)

3.1 以id分组,把name字段的值打印在一行,逗号分隔(默认)

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

+------+--------------------+

| id | group_concat(name) |

+------+--------------------+

| 1 | 10,20,20 |

| 2 | 20 |

| 3 | 200,500 |

+------+--------------------+

3 rows in set (0.00 sec)

3.2 以id分组,把name字段的值打印在一行,分号分隔

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

+------+----------------------------------+

| id | group_concat(name separator ‘;‘) |

+------+----------------------------------+

| 1 | 10;20;20 |

| 2 | 20 |

| 3 | 200;500 |

+------+----------------------------------+

3 rows in set (0.00 sec)

3.3 以id分组,把去冗余的name字段的值打印在一行,逗号分隔

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

+------+-----------------------------+

| id | group_concat(distinct name) |

+------+-----------------------------+

| 1 | 10,20 |

| 2 | 20 |

| 3 | 200,500 |

+------+-----------------------------+

3 rows in set (0.00 sec)

3.4 以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

mysql> select id,group_concat(name order by name desc) from aa group by id;

+------+---------------------------------------+

| id | group_concat(name order by name desc) |

+------+---------------------------------------+

| 1 | 20,20,10 |

| 2 | 20 |

| 3 | 500,200 |

+------+---------------------------------------+

3 rows in set (0.00 sec)

4、repeat()函数,用来复制字符串,如下‘ab‘表示要复制的字符串,2表示复制的份数

mysql> select repeat(‘ab‘,2);

+----------------+

| repeat(‘ab‘,2) |

+----------------+

| abab |

+----------------+

1 row in set (0.00 sec)

又如

mysql> select repeat(‘a‘,2);

+---------------+

| repeat(‘a‘,2) |

+---------------+

| aa |

+---------------+

1 row in set (0.00 sec)

5、SPACE(N) 函数。生成N个空格,如

mysql> select space(3);

+----------+

| space(3) |

+----------+

| |

+----------+

1 row in set (0.00 sec)

6、STRCMP(STR1,STR2) 字符串比较函数,该函数和字符集有关系,默认区分大小写

若STR1和STR2相同, 则返回 0,

若STR1小于STR2, 则返回 -1,

若STR1大于STR2, 则返回 1

mysql> select strcmp(‘abc‘,‘abc‘);

+---------------------+

| strcmp(‘abc‘,‘abc‘) |

+---------------------+

| 0 |

+---------------------+

1 row in set (0.00 sec)

mysql> select strcmp(‘a‘,‘ab‘);

+------------------+

| strcmp(‘a‘,‘ab‘) |

+------------------+

| -1 |

+------------------+

1 row in set (0.00 sec)

mysql> select strcmp(‘abc‘,‘ab‘);

+--------------------+

| strcmp(‘abc‘,‘ab‘) |

+--------------------+

| 1 |

+--------------------+

1 row in set (0.00 sec)

时间: 2024-08-30 07:57:34

MYSQL_连接字符串函数的相关文章

MySQL连接字符串函数CONCAT,CONCAT_WS,GROUP_CONCAT使用总结

在Mysql中两个字符串相加不能用+号,加号是用来做数字相加的,在mysql中要连接字符串需要用CONCAT或者CONCAT_WS函数: Mysql CONCAT函数 语法: CONCAT(str1,str2...) 例如: select OCNCAT('AB','CD') 将输出ABCD 需要注意的是: SELECT CONCAT('abc',NULL)其中有一个字符串为NULL时将输出NULL Mysql 的CONCAT_WS函数 的CONCAT_WS函数()函数, 表示concat wit

MySQL中concat函数(连接字符串)

MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串.一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如:SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL的con

C语言strcat()函数:连接字符串

头文件:#include <string.h> strcat() 函数用来连接字符串,其原型为:    char *strcat(char *dest, const char *src); [参数]dest 为目的字符串指针,src 为源字符串指针. strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部:dest 最后的结束字符 NULL 会被覆盖掉,并在连接后的字符串的尾部再增加一个 NULL. 注意:dest 与 src 所指的内存空间不能重叠,且 dest 要

字符串函数、数据类型转换函数、连接查询

1.字符串函数 --将身高的平均值转化为asc码 select ASCII(AVG(shengao))from sg --将体重的最大值转化为字符型 select CHAR (MAX(tizhong))from sg --返回一个字符串的四位soundex码 select SOUNDEX ('lskd') --比较两个soundex码有几位相同 select DIFFERENCE ('dgghsf','dfs') --打印空格 select SPACE (11) select 'a'+SPACE

(转)驱动开发中使用安全字符串函数

参考链接:http://www.cppblog.com/aurain/archive/2009/09/27/97363.html 一.前言 大量的系统安全问题是由于薄弱的缓冲处理以及由此产生的缓冲区溢出造成的,而薄弱的缓冲区处理常常与字符串操作相关.c/c++语言运行库提供的标准字符串操作函数(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的写入. 基于Windows XP SP1以及随后的操作系统的Windows DDK版本提供了安全字符串函数(safe strin

Oracle函数之字符串函数

1.SQL> select ASCII('a'),ASCII('A'),CHR(97) from dual; --ASCLL(x)返回x的ASCLL码,CHR(x)返回ASCLL码为x的字符 ASCII('A') ASCII('A') CHR(97) ---------- ---------- ------- 97 65 a 2.SQL> SELECT NAME,INSTR(NAME,'Science') FROM PRODUCTS WHERE PRODUCT_ID=1; --显示字符串Sci

常用字符串函数集合

随着计算机科学的发展和计算机应用的推广,对字符串的处理越来越成为计算机的一项重要能力.当然,在acm中也时常要用到.现在,我就来总结下在acm中必须掌握的字符串函数: 出现的顺序是按在acm中的使用频率来排的. 头文件:#include<string.h> / #include<cstring> ,分别为 C 和 C++中的头文件. 1.extern unsigned int strlen(char *s); ------>> 说明: 求字符串的长度,即字符串中字符的个

python连接字符串的方式

发现Python连接字符串又是用的不顺手,影响速度 1.数字对字符进行拼接 s=""  #定义这个字符串,方便做连接 print type(s) for i in range(10): print i type(i) s+=str(i)  #转换类型在对接 print s 2.字符对字符进行拼接 string="abcdef" for i in string: print i+'jun'  直接使用字符串连接 3.列表和字符串的拼接 list1=['hello','

python字符串函数

#连接字符串 sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print(sStr1) #复制字符串sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print(sStr2) #比较字符串#strcmp(sStr1,sStr2)sStr1 = 'strchr'sStr2 = 'strch'print(sStr1 == sStr2)#注意cmp()在python3中移除了! #截取字符串#特别注意:下标从0开始: