REVERSE | RIGHT | RPAD | RTRIM |
SPACE | SUBSTR | SUBSTRING | SUBSTRING_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
等于0
,SUBSTRING_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