示例表department:

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

常用文本处理函数:

函数

说明

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;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

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

 locate(‘a’,‘b’):子串a在串b第一次出现的位置

concat('a','b','c'):连接abc,返回连接后产生的字符串。如果任何一个参数为null,则返回null。

substring('s',startindex,length):截取字符串,第一个参数是要被截取的字符串,第二个参数是开始截取的位置,第三个参数是截取的长度。如果截取的长度是空,则代表截取全部。

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

substring_index(‘s’,‘分隔符’,数字):数字为正,从左往右有几个;数字为负,从右往左数几个

例题:

统计性别人数:

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

 

select substring(profile,',',-1)gender,count(*)number
from user_submit
group by gender;
  • 1.
  • 2.
  • 3.

截取出年龄: 

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

 

select 
substring_index(substring_index(profile,',',3),',',-1) as age,
count(device_id) as number
from user_submit
group by age;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

提取url中的用户名: 

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

 

select device_id,substring_index(blog_url,"/",-1)
as user_name
from user_submit;
  • 1.
  • 2.
  • 3.