MySQL常用字符串函数

在Mysql数据库中,函数可以用在SELECT语句及其子句(例如 WHERE、ORDER BY、HAVING等)中,也可以用在UPDATE、DELETE语句及其子句中。函数包括字符串函数、数值函数、时间日期函数和流程函数等。

字符串函数

函数功能
LENGTH(str)返回字符串str的长度
CHAR_LENGTH(str)返回字符串str的字符个数
CONCAT(str1,str2…strn)连接str1,str2…strn为一个字符串
CONCAT_WS(str,str1,str2…strn)用字符串str连接str1,str2…strn为一个字符串
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,str2)用str2对str最左边进行填充,直到字符串长度为n
RPAD(str,n,str2)用str2对str最右边进行填充,直到字符串长度为n
LTRIM(str)去掉字符串左边的空格
RTRIM(str)去掉字符串右边的空格
TRIM(str)去掉字符串两头的空格
REPEAT(str,n)将字符串str重复n次返回
REPLACE(str,a,b)用字符串b替换字符串str中所有的a
STRCMP(str1,str2)比较字符串str1和str2的ASCII码值大小
SUBSTRING(str,x,y)截取字符串str从x位置起y个字符长度的子串
REVERSE(str)将字符串str反转返回

1、 LENGTH(str) :返回字符串str的长度

mysql> select length('aaaaa');
+-----------------+
| length('aaaaa') |
+-----------------+
|               5 |
+-----------------+

2、CHAR_LENGTH(str) :返回字符串str的字符个数

mysql> select char_length('aaaaaaa');
+------------------------+
| char_length('aaaaaaa') |
+------------------------+
|                      7 |
+------------------------+

3、CONCAT(str1,str2…strn) :连接str1,str2…strn为一个字符串

mysql> select concat('aaa','bbb','ccc');
+---------------------------+
| concat('aaa','bbb','ccc') |
+---------------------------+
| aaabbbccc                 |
+---------------------------+

有一个字符串为null,则结果为null:

mysql> select concat('aaa','bbb',null);
+--------------------------+
| concat('aaa','bbb',null) |
+--------------------------+
| NULL                     |
+--------------------------+

4、CONCAT_WS(str,str1,str2…strn): 用字符串str连接str1,str2…strn为一个字符串

mysql> select concat_ws('+','aaa','bbb','ccc');
+----------------------------------+
| concat_ws('+','aaa','bbb','ccc') |
+----------------------------------+
| aaa+bbb+ccc                      |
+----------------------------------+

子串可以为null:

mysql> select concat_ws('+','aaa','bbb',null,'ddd',null);
+--------------------------------------------+
| concat_ws('+','aaa','bbb',null,'ddd',null) |
+--------------------------------------------+
| aaa+bbb+ddd                                |
+--------------------------------------------+

5、INSERT(str,x,y,instr) :将字符串str从第x位起,y个字符长度替换为instr

mysql> select insert('abcdefg',3,3,'xxxxxxxx');
+----------------------------------+
| insert('abcdefg',3,3,'xxxxxxxx') |
+----------------------------------+
| abxxxxxxxxfg                     |
+----------------------------------+

6、LOWER(str)、UPPER(str) :将字符串str中所有字符变成小(大)写

mysql> select lower('Lucky'),upper('Lucky');
+----------------+----------------+
| lower('Lucky') | upper('Lucky') |
+----------------+----------------+
| lucky          | LUCKY          |
+----------------+----------------+

7、 LEFT(str,x) 、RIGHT(str,x):返回字符串str最左(右)边x个字符

mysql> select left('abcdefg',3),right('abcdefg',3);
+-------------------+--------------------+
| left('abcdefg',3) | right('abcdefg',3) |
+-------------------+--------------------+
| abc               | efg                |
+-------------------+--------------------+

8、LPAD(str,n,str2) 、RPAD(str,n,str2): 用str2对str最左(右)边进行填充,直到字符串长度为n

mysql> select lpad('abc',10,'123'),rpad('abc',10,'123');
+----------------------+----------------------+
| lpad('abc',10,'123') | rpad('abc',10,'123') |
+----------------------+----------------------+
| 1231231abc           | abc1231231           |
+----------------------+----------------------+

9、LTRIM(str)、RTRIM(str) 、TRIM(str): 去掉字符串左(右)(两)边的空格

mysql> select ltrim('  a b c  '),rtrim('  a b c  '),trim('  a b c  ');
+--------------------+--------------------+-------------------+
| ltrim('  a b c  ') | rtrim('  a b c  ') | trim('  a b c  ') |
+--------------------+--------------------+-------------------+
| a b c              |   a b c            | a b c             |
+--------------------+--------------------+-------------------+

10、REPEAT(str,n) :将字符串str重复n次返回

mysql> select repeat('abc',3);
+-----------------+
| repeat('abc',3) |
+-----------------+
| abcabcabc       |
+-----------------+

11、REPLACE(str,a,b) : 用字符串b替换字符串str中所有的a

mysql> select replace('abcabcabc','ab','12');
+--------------------------------+
| replace('abcabcabc','ab','12') |
+--------------------------------+
| 12c12c12c                      |
+--------------------------------+

12、STRCMP(str1,str2) :比较字符串str1和str2的ASCII码值大小

mysql> select strcmp('a','n'),strcmp('a','A'),strcmp('n','a');
+-----------------+-----------------+-----------------+
| strcmp('a','n') | strcmp('a','A') | strcmp('n','a') |
+-----------------+-----------------+-----------------+
|              -1 |               0 |               1 |
+-----------------+-----------------+-----------------+

不区分大小写,str1小于str2返回-1,相等返回0,str1大于str2返回1.
13、SUBSTRING(str,x,y) : 截取字符串str从x位置起y个字符长度的子串

mysql> select substring('abcdefg',3,4),substring('abcdefg',3);
+--------------------------+------------------------+
| substring('abcdefg',3,4) | substring('abcdefg',3) |
+--------------------------+------------------------+
| cdef                     | cdefg                  |
+--------------------------+------------------------+

不给参数y表示截取到字符串末尾。

14、REVERSE(str) : 将字符串str反转返回

mysql> select reverse('abcdefg');
+--------------------+
| reverse('abcdefg') |
+--------------------+
| gfedcba            |
+--------------------+

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值