Mysql 中字符串的截取


一.从左开始截取字符串

用法:left(str, length),即:left(被截取字符串, 截取长度)

mysql> SELECT LEFT('hello,world',3);
+-----------------------+
| LEFT('hello,world',3) |
+-----------------------+
| hel                   |
+-----------------------+
1 row in set (0.00 sec)

二.从右开始截取字符串

用法:right(str, length),即:right(被截取字符串, 截取长度)

mysql> SELECT right('hello,world',3);
+------------------------+
| right('hello,world',3) |
+------------------------+
| rld                    |
+------------------------+
1 row in set (0.00 sec)

三.截取特定长度的字符串

用法:

  • substring(str, pos),即:substring(被截取字符串, 从第几位开始截取)
  • substring(str, pos, length),即:substring(被截取字符串,从第几位开始截取,截取长度)

pos 正向起始值为1,反向起始值为-1

#1.从字符串的第3个字符开始读取直至结束
mysql> SELECT substring('hello,world',3);
+----------------------------+
| substring('hello,world',3) |
+----------------------------+
| llo,world                  |
+----------------------------+
1 row in set (0.00 sec)

#2.从字符串的倒数第3个字符开始读取直至结束
mysql> SELECT substring('hello,world',-3);
+-----------------------------+
| substring('hello,world',-3) |
+-----------------------------+
| rld                         |
+-----------------------------+
1 row in set (0.01 sec)

#3.从字符串的第3个字符开始,只取5个字符
mysql> SELECT substring('hello,world',3,5);
+------------------------------+
| substring('hello,world',3,5) |
+------------------------------+
| llo,w                        |
+------------------------------+
1 row in set (0.00 sec)

#4.从字符串的倒数第3个字符开始,只取5个字符
mysql> SELECT substring('hello,world',-3,5);
+-------------------------------+
| substring('hello,world',-3,5) |
+-------------------------------+
| rld                           |
+-------------------------------+
1 row in set (0.00 sec)

四.按关键字进行读取

用法:

  • substring_index(str, delim, count),即:substring_index(被截取字符串,关键字,关键字出现的次数)
#1.截取第二个“|”之前的所有字符
mysql> SELECT substring_index('1|2|3|4|5','|',2);
+------------------------------------+
| substring_index('1|2|3|4|5','|',2) |
+------------------------------------+
| 1|2                                |
+------------------------------------+
1 row in set (0.00 sec)

#2.截取倒数第二个“|”之后的所有字符
mysql> SELECT substring_index('1|2|3|4|5','|',-2);
+-------------------------------------+
| substring_index('1|2|3|4|5','|',-2) |
+-------------------------------------+
| 4|5                                 |
+-------------------------------------+
1 row in set (0.00 sec)

#3.如果关键字不存在,则返回整个字符串
mysql> SELECT substring_index('1|2|3|4|5|','-',2);
+-------------------------------------+
| substring_index('1|2|3|4|5|','-',2) |
+-------------------------------------+
| 1|2|3|4|5|                          |
+-------------------------------------+
1 row in set (0.00 sec)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM