文本函数是大家在进行SQL查询时经常会接触到一类函数,同时他也是MySQL必会的四大函数之一,其中最常用到的函数是 substring_index() 、concat() 、length()等,这些函数可以帮助我们提高查询效率,用更加简洁易懂的形式实现一些需要复杂功能才能过实现的查询。
接下来首先给大家展示常用的文本函数,然后我会在接下来举例说明它们的用法。
常用的文本函数
函数 | 说明 |
left | 返回串左边的字符 |
length | 返回串的长度 |
lower | 将串转换为小写 |
upper | 将串转换为大写 |
ltrim | 去掉串左边的空格 |
rtrim | 去掉串右边的空格 |
substring | 返回串的一个子串 |
substring_index | 以分隔符分隔字符串 |
locate | 找出串的一个子串 |
concat(s1,s2,..) | 连接字符串 |
现有以下表格
执行以下SQL语句后
select id,name,upper(name) as '转为大写',
lower(name) as'转为小写',
left(name,4) as'左边4个字符',
right(name,4) as'右边4个字符',
length(name) as'字符串的长度',
locate('a',name) as'文本a出现的位置'
from text_test;
connect(str1,str2,...)
select concat('pycharm ','mysql') as new_name
concat()函数中可以添加多个参数
select concat('pycharm ','mysql ','other parameter') as new_name
substring(str,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
substring_index(str,delim,count)
接下来给同学们复习一下文本函数的用法,并完成下面的例题
select substring_index(profile,',',-1)gender,count(*)number
from user_submit
group by gender;
substring_index(profile,',',-1):截取出profile字段按‘,’分割后倒数第一个元素作为性别字段,并按照性别分组统计数量。