LOCATE | LOWER | LPAD | LTRIM |
MID | POSITION | REPEAT | REPLACE |
1、LOCATE
LOCATE(substr, str, start)
:一个字符串在另一个字符串中第一次出现的位置的数字索引。 LOCATE()
函数是不区分大小写的, 与INSTR()函数功能相同。
substr:
在str
中搜索的子串。
str:
被搜索的字符串。
start:
可选的。 在str
中开始搜索的位置,从 1 开始。
- 如果
start
为0
,LOCATE()
函数将返回0
。 - 当任意一个参数为
NULL
时,LOCATE()
函数将返回NULL
。
SELECT
LOCATE('He', 'Hello World') AS a,
LOCATE('he', 'Hello World') AS b,
LOCATE('wo', 'Hello World') AS c,
LOCATE('go', 'Hello World') AS d,
LOCATE(NULL, 'Hello World') AS e,
LOCATE('l', 'Hello World') AS f,
LOCATE('l', 'Hello World', 0) AS j,
LOCATE('l', 'Hello World', 1) AS h,
LOCATE('l', 'Hello World', 6) AS i
2、LOWER
LOWER(str)
:将指定字符串转为小写并返回,与LCASE()函数功能相同。
当参数
str
为NULL
时,LOWER()
函数将返回NULL
。
SELECT LOWER('Hello'), LOWER(NULL);
-- 结果
+----------------+--------------------------+
| LOWER('Hello') | LOWER(NULL) |
+----------------+--------------------------+
| hello | NULL |
+----------------+--------------------------+
-- 将用户表的用户名转为小写
SELECT LOWER(username) FROM member;
3、LPAD
LPAD(str, len, padstr)
:在字符串的左侧填充指定的字符串,使其达到指定的长度;
str:
需要被填充的字符串。
len:
填充字符串需要达到的长度。
padstr:
被用来填充到原字符串左侧的字符串。
- 如果
len
小于原字符串str
的长度,str
将被截断到len
的长度。 - 如果
len
为负数时,LPAD()
函数将返回NULL
。 - 当任意一个参数为
NULL
时,LPAD()
函数将返回NULL
。
SELECT
LPAD('oh', 10, 'o'),
LPAD('oh', 1, 'o'),
LPAD('oh', -1, 'o'),
LPAD('World', 15, 'Hel')
4、LTRIM
LTRIM(str)
:删除指定字符串的左侧空格,并返回没有左侧空格的字符串。
当参数为
NULL
时,LTRIM()
函数将返回NULL
。
SELECT LTRIM(' Hello '), LTRIM(NULL);
-- 结果
+--------------------+--------------------------+
| LTRIM(' Hello ') | LTRIM(NULL) |
+--------------------+--------------------------+
| Hello | NULL |
+--------------------+--------------------------+
5、MID
MID(str, pos, len)
:返回一个字符串中从指定位置开始的指定长度的子字符串。
str:
从中提取子字符串的原字符串。
pos:
开始提取的位置。正数或者负数。如果是正数,则从字符串的开头开始提取子字符串。
如果是负数,则从字符串的结尾提取子字符串。
len:
可选的。子字符串的长度(字符数)。如果不指定,则提取到原字符串的结尾。
- 当
pos
为0
或者超过原字符串的长度时,MID()
函数将返回空串''
。 - 当参数为
NULL
时,MID()
函数将返回NULL
。
SELECT
MID('Hello', 1, 2),
MID('Hello', 2, 2),
MID('Hello', 1),
MID('Hello', 1, 8),
MID('Hello', -1, 2),
MID('Hello', 8, 2),
MID('Hello', 0, 2),
MID('Hello', 0),
MID(NULL, 1, 1)
6、POSITION
POSITION(sustr IN str)
:返回一个字符串在另一个字符串中第一次出现的位置的数字索引。 不区分大小写。 POSITION()
函数与具有两个参数的INSTR()和LOCATE()功能相同。
如果在
str
中找不到substr
,POSITION()
函数将返回0
。当任意一个参数为
NULL
时,POSITION()
函数将返回NULL
。
SELECT
POSITION('He' IN 'Hello World') a,
POSITION('he' IN 'Hello World') b,
POSITION('wo' IN 'Hello World') c,
POSITION('go' IN 'Hello World') d,
POSITION('l' IN 'Hello World') f,
POSITION(NULL IN 'Hello World') j,
POSITION('l' IN NULL) h
7、REPEAT
REPEAT(str, count)
:将指定的字符串重复指定的次数并返回。
- 当
count
为 0 或者负数时,REPEAT()
函数将返回空字符串''
。- 当任意一个参数为
NULL
时,REPEAT()
函数将返回NULL
。
SELECT
REPEAT('MySQL', 3),
REPEAT('Go ', 3),
REPEAT('MySQL', 0),
REPEAT('MySQL', -1),
REPEAT('MySQL', NULL),
REPEAT(NULL, 3)
8、REPLACE
REPLACE(str, from_str, to_srt)
:将字符串中出现的所有子字符串替换为新的子字符串。
- 当任意一个参数为
NULL
时,REPLACE()
函数将返回NULL
。
SELECT
REPLACE('Hello World', 'World', 'Alice'),
REPLACE('Hello World', 'l', 'L'),
REPLACE('Hello World', 'h', 'HH')