MySQL8.0常用字符串函数用法
字符串函数是常用的一种函数,以下列出了常用字符串函数。
| 函数 | 功能 |
|---|---|
| CONCAT(s1,s2,…,sn) | 连接 s1,s2,…,sn 为一个字符串 |
| INSERT(str,x,y,instr) | 将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符串 instr |
| LOWER(str) | 将字符串 str 中所有字符变为小写 |
| UPPER(str) | 将字符串 str 中所有字符变为大写 |
| LEFT(str,x) | 返回字符串 str 最左边的 x 个字符 |
| RIGHT(str,x) | 返回字符串 str 最右边的 x 个字符 |
| LPAD(str,n,pad) | 用字符串 pad 对 str 最左边进行填充,直到长度为 n 个字符长度 |
| RPAD(str,n,pad) | 用字符串 pad 对 str 最右边进行填充,直到长度为 n 个字符长度 |
| LTRIM(str) | 去掉字符串 str 左侧的空格 |
| RTRIM(str) | 去掉字符串 str 行尾的空格 |
| REPEAT(str,x) | 返回 str 重复 x 次的结果 |
| REPLACE(str,a,b) | 用字符串 b 替换字符串 str 中所有出现的字符串 a |
| STRCMP(s1,s2) | 比较字符串 s1 和 s2 |
| TRIM(str) | 去掉字符串行尾和行头的空格 |
| SUBSTRING(str,x,y) | 返回从字符串 str x 位置起 y 个字符长度的字符串 |
MySQL字符串函数详解
1.CONCAT函数
语法:CONCAT(s1, s2, ..., sn)
功能:将多个字符串连接成一个字符串。
示例:
SELECT CONCAT('aaa', 'bbb', 'ccc'), CONCAT('aaa', NULL);
结果:
mysql> SELECT CONCAT('aaa', 'bbb', 'ccc'), CONCAT('aaa', NULL);
+-----------------------------+---------------------+
| CONCAT('aaa', 'bbb', 'ccc') | CONCAT('aaa', NULL) |
+-----------------------------+---------------------+
| aaabbbccc | NULL |
+-----------------------------+---------------------+
1 row in set (0.00 sec)
注意:任何字符串与NULL连接结果均为NULL。
2.INSERT函数
语法:INSERT(str, x, y, instr)
功能:将字符串str从第x位开始、长度为y的子串替换为instr。
示例:
SELECT INSERT('beijing2008you', 12, 3, 'me');
结果:
mysql> SELECT INSERT('beijing2008you', 12, 3, 'me');
+---------------------------------------+
| INSERT('beijing2008you', 12, 3, 'me') |
+---------------------------------------+
| beijing2008me |
+---------------------------------------+
1 row in set (0.00 sec)
3.LOWER与UPPER函数
• LOWER(str):将字符串转为小写。
• UPPER(str):将字符串转为大写。
示例:
SELECT LOWER('BEIJING2008'), UPPER('beijing2008');
结果:
mysql> SELECT LOWER('BEIJING2008'), UPPER('beijing2008');
+----------------------+----------------------+
| LOWER('BEIJING2008') | UPPER('beijing2008') |
+----------------------+----------------------+
| beijing2008 | BEIJING2008 |
+----------------------+----------------------+
1 row in set (0.00 sec)
4.LEFT与RIGHT函数
• LEFT(str, x):返回字符串最左边的x个字符。
• RIGHT(str, x):返回字符串最右边的x个字符。
注意:若第二个参数为NULL,则不返回任何字符。
以下是基于图片内容的文本格式整理:
SQL语句:
SELECT LEFT('beijing2008',7), LEFT('beijing',NULL), RIGHT('beijing2008',4);
执行结果:
mysql> SELECT LEFT('beijing2008',7), LEFT('beijing',NULL), RIGHT('beijing2008',4);
+-----------------------+----------------------+------------------------+
| LEFT('beijing2008',7) | LEFT('beijing',NULL) | RIGHT('beijing2008',4) |
+-----------------------+----------------------+------------------------+
| beijing | NULL | 2008 |
+-----------------------+----------------------+------------------------+
1 row in set (0.00 sec)
5.LPAD/RPAD函数说明
语法:
• LPAD(str, n, pad):用pad字符串左填充str至总长度n
• RPAD(str, n, pad):用pad字符串右填充str至总长度n
SQL语句:
SELECT LPAD('2008',20,'beijing'), RPAD('beijing',20,'2008');
执行结果:
mysql> SELECT LPAD('2008',20,'beijing'), RPAD('beijing',20,'2008');
+---------------------------+---------------------------+
| LPAD('2008',20,'beijing') | RPAD('beijing',20,'2008') |
+---------------------------+---------------------------+
| beijingbeijingbe2008 | beijing2008200820082 |
+---------------------------+---------------------------+
1 row in set (0.00 sec)
6.空格处理函数
LTRIM(str)
• 功能:去除字符串左侧空格
RTRIM(str)
• 功能:去除字符串右侧空格
示例:
SELECT LTRIM(' beijing'), RTRIM('beijing ');
mysql> SELECT LTRIM(' beijing'), RTRIM('beijing ');
+--------------------+--------------------+
| LTRIM(' beijing') | RTRIM('beijing ') |
+--------------------+--------------------+
| beijing | beijing |
+--------------------+--------------------+
1 row in set (0.00 sec)
7. REPEAT函数
语法:REPEAT(str, count)
• 功能:重复生成指定次数字符串
示例:
SELECT REPEAT('abc', 3);
mysql> SELECT REPEAT('abc', 3);
+------------------+
| REPEAT('abc', 3) |
+------------------+
| abcabcabc |
+------------------+
1 row in set (0.00 sec)
8.REPLACE函数
语法:REPLACE(str, a, b)
• 功能:将字符串str中所有子串a替换为b
示例:
SELECT REPLACE('beijing_2010', '2010', '2008');
执行结果:
mysql> SELECT REPLACE('beijing_2010', '2010', '2008');
+-----------------------------------------+
| REPLACE('beijing_2010', '2010', '2008') |
+-----------------------------------------+
| beijing_2008 |
+-----------------------------------------+
1 row in set (0.00 sec)
9.STRCMP函数
语法:STRCMP(s1, s2)
• 比较规则:
• 返回-1:s1的ASCII码 < s2
• 返回0:s1 = s2
• 返回1:s1的ASCII码 > s2
示例:
SELECT STRCMP('a','b'), STRCMP('b','b'), STRCMP('c','b');
执行结果:
mysql> SELECT STRCMP('a','b'), STRCMP('b','b'), STRCMP('c','b');
+-----------------+-----------------+-----------------+
| STRCMP('a','b') | STRCMP('b','b') | STRCMP('c','b') |
+-----------------+-----------------+-----------------+
| -1 | 0 | 1 |
+-----------------+-----------------+-----------------+
1 row in set (0.00 sec)
10.TRIM函数
语法:TRIM(str)
• 功能:同时去除字符串首尾空格
示例:
SELECT TRIM(' beijing2008 ');
执行结果:
mysql> SELECT TRIM(' beijing2008 ');
+---------------------------+
| TRIM(' beijing2008 ') |
+---------------------------+
| beijing2008 |
+---------------------------+
1 row in set (0.00 sec)
## 11.MySQL SUBSTRING 函数详解
函数定义
**语法**:`SUBSTRING(str, x, y)`
**功能**:提取字符串`str`中从第`x`个位置开始,长度为`y`的子串
**参数说明**:
• `str`:原始字符串
• `x`:起始位置(从1开始计数)
• `y`:要提取的字符长度
**SQL语句**:
```sql
SELECT
SUBSTRING('beijing2008', 8, 4) AS example1,
SUBSTRING('beijing2008', 1, 7) AS example2;
执行结果:
mysql> SELECT
-> SUBSTRING('beijing2008', 8, 4) AS example1,
-> SUBSTRING('beijing2008', 1, 7) AS example2;
+----------+----------+
| example1 | example2 |
+----------+----------+
| 2008 | beijing |
+----------+----------+
1 row in set (0.00 sec)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




