示例表department:
常用文本处理函数:
函数 | 说明 |
left | 返回串左边的字符 |
length | 返回串的长度 |
lower | 将串转换为小写 |
upper | 将串转换为大写 |
ltrim | 去掉串左边的空格 |
rtrim | 去掉串右边的空格 |
substring | 返回串的一个子串 |
substring_index | 以分隔符分隔字符串 |
locate | 找出串的一个子串 |
concat(s1,s2,..) |
连接字符串 |
验证lower,upper,right,left,length,locate函数的使用
select dept_no,dept_name,upper(dept_name) as '转为大写',
lower(dept_name) as'转为小写',
left(dept_name,4) as'左边4个字符',
right(dept_name,4) as'右边4个字符',
length(dept_name) as'字符串的长度',
locate('an',dept_name) as'文本an出现的位置'
from departments;
locate(‘a’,‘b’):子串a在串b第一次出现的位置
concat('a','b','c'):连接abc,返回连接后产生的字符串。如果任何一个参数为null,则返回null。
substring('s',startindex,length):截取字符串,第一个参数是要被截取的字符串,第二个参数是开始截取的位置,第三个参数是截取的长度。如果截取的长度是空,则代表截取全部。
扫描二维码关注公众号,回复:
13799216 查看本文章
select substring('abcdefg',5);从第5个位置开始截取
->efg
select substring('abcdefg',5,2);从第5个位置开始截取长度为2的子串
->ef
select substring('abcdefg',-3);位置为负数时,代表从右边往左数,-3代表右数三位,一直到最后
->efg
select substring('abcdefg',-3,2);从右往左数3位截取长度为2的子串
->ef
substring_index(‘s’,‘分隔符’,数字):数字为正,从左往右有几个;数字为负,从右往左数几个
例题:
统计性别人数:
select substring(profile,',',-1)gender,count(*)number
from user_submit
group by gender;
截取出年龄:
select
substring_index(substring_index(profile,',',3),',',-1) as age,
count(device_id) as number
from user_submit
group by age;
提取url中的用户名:
select device_id,substring_index(blog_url,"/",-1)
as user_name
from user_submit;