本章将介绍如何使用字符函数处理字符串
/*
《常见函数》
调用:
select函数名(实参列表)【from表】
分类:
1、单行函数
如concat、length、ifnull等
2、分组函数
功能:
做统计使用,又称为统计函数、聚合函数、组函数
*/
/*
字符函数
*/
USE myemployees;
#1、length获取参数值的字节数
SHOW VARIABLES LIKE '%char%' /*发现客户端utf8类型,中文占3个字节*/
SELECT LENGTH('PIG'); /*3个字节*/
SELECT LENGTH('我不是PIG'); /*12个字节*/
#2、concat 拼接字符串
SELECT CONCAT(last_name,'_',first_name) AS 姓名
FROM employees;
#3、upper、lower
SELECT UPPER('aBcDeFg'); /*ABCDEFG*/
SELECT LOWER('aBcDeFg'); /*abcdefg*/
/*案例:将姓氏变成大写,名字变成小写,然后进行拼接*/
SELECT CONCAT(UPPER(last_name),'_',LOWER(first_name))
FROM employees;
#4、substr、substring字符串截取 /*MySQL的索引从1开始,这两个函数是同一个作用*/
/*截取从指定索引处后面所有字符*/
SELECT SUBSTR('李莫愁爱上了陆展元',7); /*陆展元*/
/*截取从指定索引处指定字符长度的字符*/
SELECT SUBSTRING('李莫愁爱上了陆展元',1,3); /*李莫愁*/
/*案例:姓名中除姓氏首字母大写外,其他全部小写*/
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),LOWER(SUBSTR(last_name,2)),'__',LOWER(first_name))
FROM employees;
#5、instr /*返回子串第一次出现的索引,如果找不到就返回0*/
SELECT INSTR('这张照片的背景是红色的','红色') AS OUT_PUT; /*9*/
#6、trim /*默认去除字符串左边和右边的空格(也可以选择自定义字符串以及去除方式)*/
SELECT LENGTH(TRIM(' 李世民 ')) AS out_put; /*9*/
SELECT TRIM('aa' FROM 'aaabbbcaa') AS out_put; /*默认匹配去除两边字符串 abbbc*/
SELECT TRIM(TRAILING 'aa' FROM 'aaabbbcaa') AS out_put; /*匹配去除右边字符串 aaabbbc*/
SELECT TRIM(BOTH 'aa' FROM 'aaabbbcaa') AS out_put; /*匹配去除两边字符串 abbbc*/
SELECT TRIM(LEADING 'aa' FROM 'aaabbcaa') AS out_put; /*匹配去除左边字符串 abbbcaa*/
#7、lpad 用指定字符实现左填充至指定长度,不够长则会被截取
SELECT LPAD('我是',5,'A'); /* AAA我是 */
SELECT LPAD('我是',1,'A'); /* 我 */
#8、rpad 用指定字符实现右填充至指定长度,不够长则会被截取
SELECT RPAD('我是',5,'A'); /* 我是AAA */
SELECT RPAD('我是',1,'A'); /* 我 */
#9、replace替换
SELECT REPLACE('给我一个大逼兜','我','你'); /*给你一个大逼兜*/