字符串函数
字符串函数是最常用的一类函数,在一个具体的应用中通常会综合使用多个字符串函数来实现相应的功能。字符串函数接受字符数据作为输入,返回的结果既可以是字符值也可以是数字值。下面列举一些常用的字符串函数,函数括号内为参数,如下表所示:
函数 | 说明 |
---|---|
lower(str) | 将输入的字符串全部转换为小写 |
upper(str) | 将输入的字符串全部转换为大写 |
concat(str1,str2) | 将字符串 str1 和 str2 首尾连接后返回 |
substr(str,m[,n]) | 获取字符串中指定的子串,该子串从 m 位置开始获取,取 n 个字符,如果 n 被忽略,则取到字符串结尾处 |
length(str) | 返回字符串的长度 |
instr(str,substr) | 从字符串 str 中返回子串 substr 第一次出现的位置 |
lpad(str1,n,str2) | 在字符串 str1 的左边使用字符串 str2 进行填充,直到总长度达到 n 为止 |
rpad(str1,n,str2) | 在字符串 str1 的右边使用字符串 str2 进行填充,直到总长度达到 n 为止 |
replace(str,old_str,new_str) | 在字符串 str 中查找所有的子串 old_str,使用 new_str 替换,并返回替换后的结果 |
repeat(str,count) | 将字符串 str 重复 count 次,并返回重复后的结果 |
reverse(str) | 将字符串 str 反转,返回反转后的结果 |
示例:
lower(str)
:将输入的字符串全部转换为小写。
select lower('MySQL');
输出结果:
+----------------+
| lower('MySQL') |
+----------------+
| mysql |
+----------------+
1 row in set (0.00 sec)
concat(str1,str2)
:将字符串 str1 和 str2 首尾连接后返回。
select concat ('My', 'SQL');
输出结果:
+----------------------+
| concat ('My', 'SQL') |
+----------------------+
| MySQL |
+----------------------+
1 row in set (0.00 sec)
substr(str,m,n)
:获取字符串中指定的子字符串,从 m 位置开始,取 n 个字符,如果 n 被忽略,则取到字符串结尾处。
select substr('MySQL',3,3);
输出结果:
+---------------------+
| substr('MySQL',3,3) |
+---------------------+
| SQL |
+---------------------+
1 row in set (0.00 sec)
注意:第一个字符的起始位置是 1,不是 0。
length(str)
:返回字符串的长度。
select length('MySQL');
输出结果:
+-----------------+
| length('MySQL') |
+-----------------+
| 5 |
+-----------------+
1 row in set (0.00 sec)
instr(str,substr)
:从字符串 str 中返回子串 substr 第一次出现的位置。
select instr('MySQLSQL','SQL');
输出结果:
+-------------------------+
| instr('MySQLSQL','SQL') |
+-------------------------+
| 3 |
+-------------------------+
1 row in set (0.00 sec)
注意:“SQL” 在 “MySQLSQL” 中第一次出现的位置是 3。
lpad(str1,n,str2)
:在字符串 str1 的左边使用字符串 str2 进行填充,直到总长度达到 n 为止。
select lpad('MySQL',8,'*');
输出结果:
+---------------------+
| lpad('MySQL',8,'*') |
+---------------------+
| ***MySQL |
+---------------------+
1 row in set (0.00 sec)
注意:结果解析:把*添加到 MySQL 的左边,总长度达到 8 为止。
replace(str,old_str,new_str)
:在字符串 str 中查找所有的子串 old_str,使用 new_str 替换,并返回替换后的结果。
select replace('MySQL','SQL','sql');
输出结果:
+------------------------------+
| replace('MySQL','SQL','sql') |
+------------------------------+
| Mysql |
+------------------------------+
1 row in set (0.00 sec)
注意:把 MySQL 中的 SQL 替换为 sql。
repeat(str,count)
:将字符串 str 重复 count 次,并返回重复后的结果。
select repeat('MySQL',2);
输出结果:
+-------------------+
| repeat('MySQL',2) |
+-------------------+
| MySQLMySQL |
+-------------------+
1 row in set (0.00 sec)
注意:MySQL 字符串重复输出两次。
reverse(str)
:将字符串 str 反转,返回反转后的结果。
select reverse('MySQL');
输出结果:
+------------------+
| reverse('MySQL') |
+------------------+
| LQSyM |
+------------------+
1 row in set (0.00 sec)