MySQL 【字符串】函数大全(四)

REVERSERIGHTRPADRTRIM
SPACESUBSTRSUBSTRINGSUBSTRING_INDEX
1、REVERSE

REVERSE(str) :返回反转后的字符串。

当参数为 NULL 时, REVERSE() 函数将返回 NULL

SELECT
    REVERSE('ABC'),
    REVERSE('abc'),
    REVERSE('123'),
    REVERSE(NULL)

2、RIGHT

RIGHT(str, length) :从指定字符串的右侧返回指定数量的字符组成的字符串。从字符串的左侧提取字符,使用LEFT()函数。

  • 如果 length 超出了 string 的长度,RIGHT() 函数返回 string
  • 如果 length 为零或负数,RIGHT() 函数将返回一个空串。
  • 当任意一个参数为 NULL 时, RIGHT() 函数将返回 NULL
SELECT
    RIGHT('Hello', 1),
    RIGHT('Hello', 2),
    RIGHT('Hello', 3),
    RIGHT('Hello', 0),
    RIGHT('Hello', -1),
    RIGHT('Hello', NULL),
    RIGHT(NULL, NULL)

3、RPAD

RPAD(str, len, padstr) :在一个字符串的右侧填充指定的字符串,使其达到指定的长度。如果想在字符串的左侧填充字符串,使用LPAD()函数。

str:需要被填充的字符串。

len:填充字符串需要达到的长度。

padstr:被用来填充到原字符串右侧的字符串。

  • 如果 len 小于原字符串 str 的长度, str 将被截断到 len 的长度。
  • 如果 len 为负数时,RPAD() 函数将返回 NULL
  • 当任意一个参数为 NULL 时, RPAD() 函数将返回 NULL
SELECT
    RPAD('oh', 10, 'h'),
    RPAD('oh', 1, 'h'),
    RPAD('oh', -1, 'h'),
    RPAD('Hello', 13, 'World'),
    RPAD('Hello', 13, NULL)

4、RTRIM

RTRIM(str) :删除指定字符串的尾部空格,并返回没有尾部空格的字符串。如果删除字符串的首部空格,请使用 LTRIM()函数;如果想同时删除字符串的前后空格,请使用TRIM()函数。

当参数为 NULL 时, RTRIM() 函数将返回 NULL

SELECT RTRIM('   Hello '), RTRIM(NULL);
-- 结果
+--------------------+--------------------------+
| RTRIM('   Hello ') | RTRIM(NULL)              |
+--------------------+--------------------------+
| Hello              | NULL                     |
+--------------------+--------------------------+
5、SPACE

SPACE(count) :返回由指定数量的空格符组成的字符串。

  • 当参数 count 小于 1 时, SPACE() 函数返回一个空字符串 ''
  • 当参数为 NULL 时, SPACE() 函数将返回 NULL
SELECT
    LENGTH(SPACE(2)),
    LENGTH(SPACE(6)),
    LENGTH(SPACE(0)),
    LENGTH(SPACE(-1)),
    SPACE(NULL)

6、SUBSTR

SUBSTR(str, pos, len) :从一个字符串中返回一个从指定位置开始指定长度的子字符串。

str:从中提取子字符串的原字符串。

pos:开始提取的位置。它可以是正数或者负数。

         如果是正数,则从字符串的开头为起始位置确定开始提取的位置提取子字符串。

         如果是负数,则从字符串的结尾为起始位置确定开始提取的位置提取子字符串。

len:可选。子字符串的长度(字符数)。如果不指定,则提取到原字符串的结尾。

  • 当 pos 为 0 或者超过原字符串的长度时, SUBSTR() 函数将返回空串 ''
  • 当 pos 为负数时, SUBSTR() 函数从字符串尾部向前计数。
  • 当 pos + len 超过原字符串的长度时, SUBSTR() 函数提取到原字符串的结尾。
  • 当参数为 NULL 时, SUBSTR() 函数将返回 NULL
SELECT
    SUBSTR('Hello', 1, 2)		a,
    SUBSTR('Hello', 2, 2)		b,
    SUBSTR('Hello', 1)			c,
    SUBSTR('Hello', 1, 8)		d,
    SUBSTR('Hello', -2, 2)	    e,
    SUBSTR('Hello', 8, 2)		f,
    SUBSTR('Hello', 0, 2)		g,
    SUBSTR('Hello', 0)			h,
    SUBSTR('Hello' FROM 2 FOR 2)	i

7、SUBSTRING

SUBSTRING(str, pos, len) :从一个字符串中返回一个从指定位置开始指定长度的子字符串。SUBSTR()等同于 SUBSTRING() 函数。

str:从中提取子字符串的原字符串。

pos:开始提取的位置。它可以是正数或者负数。

         如果是正数,则从字符串的开头为起始位置确定开始提取的位置提取子字符串。

         如果是负数,则从字符串的结尾为起始位置确定开始提取的位置提取子字符串。

len:可选。子字符串的长度(字符数)。如果不指定,则提取到原字符串的结尾。

  • 当 pos 为 0 或者超过原字符串的长度时, SUBSTR() 函数将返回空串 ''
  • 当 pos 为负数时, SUBSTR() 函数从字符串尾部向前计数。
  • 当 pos + len 超过原字符串的长度时, SUBSTR() 函数提取到原字符串的结尾。
  • 当参数为 NULL 时, SUBSTR() 函数将返回 NULL
SELECT
    SUBSTR('Hello', 1, 2)		a,
    SUBSTR('Hello', 2, 2)		b,
    SUBSTR('Hello', 1)			c,
    SUBSTR('Hello', 1, 8)		d,
    SUBSTR('Hello', -2, 2)	    e,
    SUBSTR('Hello', 8, 2)		f,
    SUBSTR('Hello', 0, 2)		g,
    SUBSTR('Hello', 0)			h,
    SUBSTR('Hello' FROM 2 FOR 2)	i

8、SUBSTRING_INDEX

SUBSTRING_INDEX(str, dlim, count) :返回一个字符串中指定分隔符出现在指定次数之前的子字符串。

str:原字符串。

delim:在原字符串中搜索的分隔符。

count:分隔符出现的次数。如果 count 为负数,则从字符串尾部向前开始计数分隔符,返回分隔符之后的子字符串。

  • 如果参数 count 等于 0SUBSTRING_INDEX() 函数返回一个空字符串 '';
  • 如果参数 count 为负数时, 则从字符串尾部向前开始计数分隔符,返回分隔符之后的子字符串。
  • 如果任意一个参数为 NULL 时, SUBSTRING_INDEX() 函数将返回 NULL
SELECT
    SUBSTRING_INDEX('www.mysql.com', '.', 2)		A,
    SUBSTRING_INDEX('www.mysql.com', '.', -2)		B,
    SUBSTRING_INDEX('www.mysql.com', '.', 0)		C

MySQL 【字符串】函数大全(三)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值