1、定义
sql 的文本函数就是对字符串操作的函数,常用如下
1. length(str)
返回字符串长度
2. locate(substr,str)---------->位置从1开始
返回子串substr在str中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;
3. position(substr IN str )
返回子串substr在str中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;
4. instr(str,substr)
返回substr子串在str中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;
5. concat(str,str,str)
将两个或多个字符串连接起来,形成一个单一的字符串
6. substring(str ,n ,m)
返回字符串str从下标n位置开始,长度为m的字符串.
在不指定返回字符串长度的情况下,返回字符串str从下标n位置到结尾的字符串
7. substring_index(str ,substr ,n)
将字符串str依据substr为分隔符进行切分,并返回第n个分隔符前的字符
8. left(str, length):
将str从左向右截取为length长度的字符串
9. right(str, length):
将str从右向左截取为length长度的字符串
10. replace(str, n, m):
将字符串str中的n字符替换成m字符
11. trim(pos,substr from str)
将指定位置pos的子串substr从str中删除,这个pos只可以是leading(开头)、trailing(结尾)和both(头和尾)。如果不写pos,那就默认为both。
12. ltrm(str)
将str中左边的空格删除
13. rtrm(str)
将str中右边的空格删除
删除字符串中间的空格需要用到replace()函数
2、举例
- 查询students里面的name,并查询出名字的长度
select name, length(name) as name_length from students;
name | name_length |
小明 | 2 |
小红 | 2 |
小军 | 2 |
小米 | 2 |
小白 | 2 |
小兵 | 2 |
小林 | 2 |
小新 | 2 |
小王 | 2 |
小丽 | 2 |
- 查询students里面的name,并根据昵称里面是否有'M'字符串来判断这个人是什么性别
select name, if((instr(gender, "M"))>=1, "男", "女") as gender from students;
name | gender |
小明 | 男 |
小红 | 女 |
小军 | 男 |
小米 | 女 |
小白 | 女 |
小兵 | 男 |
小林 | 男 |
小新 | 女 |
小王 | 男 |
小丽 | 女 |