#字符串函数
/*
ASCII('AB') 返回字符串ab 的第一个字符的 ASCII 码
LOWER('SQL Course') : 将字符串的内容全部变成小写
UCASE(s)/UPPER(s)将字符串 s 的所有字母变成大写字母
UPPER('SQL Course') : 将字符串的内容全部变成大写
LCASE(s)/LOWER(s)将字符串 s 的所有字母变成小写字母
*/
/*
CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串,字符串拼接
CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
注意:
如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
如连接后以逗号分隔
SUBSTR('HelloWorld',1,5) : 截取子串,从1的位置开始长度为5
注意:索引位置是从1开始
SUBSTR/SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
LENGTH/CHAR_LENGTH(s)/CHARACTER_LENGTH(s)返回字符串 s 的字符数
INSTR('HelloWorld', 'W') : w在字符串中第一次出现的位置(从左向右)
POSITION(s1 IN s)从字符串 s 中获取 s1 的开始位置
FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置
LPAD(salary,10,'*') :右对齐
第一个参数:内容
第二个参数:内容的长度
第三个参数:如果内容的长度不够用什么补
RPAD(salary, 10, '*') : 左对齐
第一个参数:内容
第二个参数:内容的长度
第三个参数:如果内容的长度不够用什么补
TRIM('H' FROM 'HelloWorld'):去除字符串两端指定的字符
TRIM(s)去掉字符串 s 开始和结尾处的空格
LTRIM(s)去掉字符串 s 开始处的空格
RTRIM(s)去掉字符串 s 结尾处的空格
REPLACE('abcd','b','m') : 将字符串中的b替换成m
*/
SELECT CONCAT('hello','longge'),SUBSTR('hellolongge',2,5),LENGTH('aaa'),INSTR('hellowaaaooow','w'),POSITION('w'IN 'hellowaaaooow') ;
SELECT CONCAT(first_name,last_name)
FROM employees;
SELECT LPAD(first_name,20,' '),RPAD(last_name,20,' ')
FROM employees;
SELECT TRIM(' HHe dH '),TRIM('H' FROM 'HHHelloHWorldHH'),LTRIM(' RUNOOB '),RTRIM(' RUNOOB ');
SELECT REPLACE('abcdbbbb','b','m'),FIND_IN_SET("c", "a,b,c,d,e");
group_concat函数
完整的语法如下:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
/*
FORMAT(x,n)函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入
INSERT(s1,x,len,s2)字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
LOCATE(s1,s)从字符串 s 中获取 s1 的开始位置
REPEAT(s,n)将字符串 s 重复 n 次
REVERSE(s)将字符串s的顺序反过来
STRCMP(s1,s2)比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
*/
SELECT FORMAT(250500.5634, 2),INSERT("google.com", 1, 6, "runnob"), LOCATE('st','myteststring'),REPEAT('runoob',3),REVERSE('abc'),STRCMP("aunoob", "runoob");
基本查询 mysql> select * from aa; 以id分组,把name字段的值打印在一行,逗号分隔(默认) mysql> select id,group_concat(name) from aa group by id; 以id分组,把name字段的值打印在一行,分号分隔 mysql> select id,group_concat(name separator ';') from aa group by id; 以id分组,把去冗余的name字段的值打印在一行, 逗号分隔 mysql> select id,group_concat(distinct name) from aa group by id; 以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序 mysql> select id,group_concat(name order by name desc) from aa group by id; |