【MYSQL快速入门】常用函数:文本函数

示例表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;

猜你喜欢

转载自blog.csdn.net/m0_52043808/article/details/124277591