字符函数
#length 获取参数值的字节个数
SELECT LENGTH('1234')
查询出来的结果是4
SELECT LENGTH('萧十一郎123456')
大家猜猜查询出来的结果会是多少呢?
答案:18
为什么18呢?冰雪聪明你应该知道吧?
因为一个汉字的字符占三个字节为什么是三个而不是两个呢?
我们现在就用到一个新的知识点?
SHOW VARIABLES LIKE '%char%'
查询出你的你们客户端的字符集
character_set_client utf8 占三个字节
gbk 就是占两个字节
concat 拼接字符串
select concat(last_name,'_',first_name) 姓名 from employees
李_三
upper lower
#示例:将姓变大写,名变小写,然后拼接
select concat(upper(last_name),lower(first_name)) 姓名 from employees
AAaa
substr,substring
注意:索引从1开始
#截取从指定索引处后面所有字符
select substr('张三丰是张无忌的外公',1,3) as name
#截取张三丰
#截取从指定索引处后面所有字符
select substr('倚天屠龙记之张三丰',7) as name
#案例:姓名中首字符大写,其他字符小写然后用_拼接,显示出来
SELECT CONCAT(UPPER(SUBSTR(first_name,1,1)),'_',LOWER(last_name)) FROM employees AS NAME
A_aa
B_bb
#5.instr 返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR('杨不殷六侠悔爱上了殷六侠','殷八侠') AS out_put;
#6.trim 去掉前后的字符
SELECT LENGTH(TRIM(' 张翠山 ')) AS out_put;
SELECT TRIM('a' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') AS name;
# 根据2个a 去掉 剩余留在a
SELECT TRIM('aa' FROM 'aaaaaaaaa张aaaaaaaaaaaa翠山aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') AS name;
lpad
lpad 用指定的字符实现左填充指定长度
SELECT LPAD(‘殷素素’,7,‘张翠山爱’) as love
查询出来的是 张翠山爱’殷素素
#rpad 用指定的字符实现右填充指定长度
SELECT RPAD(‘殷素素’,7,‘爱张翠山’) AS love;
replace
#替换
SELECT REPLACE('周芷若周芷若周芷若周芷若张无忌爱上了周芷若','周芷若','赵敏') AS love;