字符串函数 |
描述 |
length(s) |
返回字符串 s 的长度 |
concat(s1,s2,...,sn) |
拼接字符串 |
insert(s,idx,len,replacestr) |
替换字符串,将字符串 s 从第 idx 位置开始,len 个字符长的子串替换为字符串 replacestr,字符串下标从 1 开始的 |
lower(s) 或 lcase(s) |
将字符串 s 中的字母都转换为小写 |
upper(s) 或 ucase(s) |
将字符串 s 中的字母都转换为大写 |
left(s,n) |
从字符串 s 左侧开始截取,截取 n 位字符 |
right(s,n) |
从字符串 s 右侧开始截取,截取 n 位 字符 |
lpad(s,len,pad) |
从字符串 s 左侧开始填充字符串 pad,直到字符串 s 的长度为 len |
rpad(s,len,pad) |
从字符串 s 右侧开始填充字符串 pad,直到字符串 s 的长度为 len |
trim(s) |
去掉字符串 s 左右两侧的空格 |
ltrim(s) |
去掉字符串 s 左侧的空格 |
rtrim(s) |
去掉字符串 s 右侧的空格 |
repeat(s,n) |
返回字符串 s 重复 n 次后的结果 |
space(n) |
返回 n 个空格 |
strcmp(s1,s2) |
比较字符串 s1 和 s2 的 ASCII 值大小 |
replace(s,a,b) |
用字符串 b 替换 字符串 s 中的所有子串 a |
substr(s,idx,len) 或 substring(s,idx,len) |
截取字符串,从字符串的索引 idx 开始,截取 len 位字符 |
reverse(s) |
字符串反转 |
NULLIF(s1,s2) |
比较字符串 s1 和 s2,如果两个字符串相等,则返回 NULL,否则返回 s1 |
field(s,s1,s2,...,sn) |
返回字符串 s 在字符串列表中第一次出现的位置,下标从 1 开始 |
find_in_set(s1,s2) |
返回字符串 s1 在 字符串 s2 中第一次出现的位置。 其中,字符串 s2是一个以逗号分隔的字符串 |
# 求字符串 'MySQL' 的长度,拼接 'My' 、'SQL'和'数据库',替换 'Oracle数据库' 为 'MySQL数据库'
select length('MySQL'), concat('My','SQL','数据库'), insert('Oracle数据库',1,5,'MySQL');
# 将字符串 'MySQL' 转为小写、大写,从 'MySQL数据库' 左侧截取 5 位字符、右侧截取 3 位字符
select lower('MySQL'), ucase('MySQL'), left('MySQL数据库',5), right('MySQL数据库',3);
# 从字符串 '情人节' 左侧开始填充字符串 '财神节',直到字符串 '情人节' 的长度为 11;
# 从字符串 '情人节' 右侧开始填充字符串 '财神节',直到字符串 '情人节' 的长度为 11;
select lpad('情人节',11,'财神节'), rpad('情人节',11,'财神节');
# 去掉 ' MySQL数据库 ' 两侧、左侧、右侧的空格
select trim(' MySQL数据库 '), ltrim(' MySQL数据库 '), rtrim(' MySQL数据库 ');
# 返回 '财神节' 重复 8 次的结果,返回 3 个空格,比较 '情人节' 和 '财神节' ASCII 值大小
select repeat('财神节',8), space(3), strcmp('情人节','财神节');
# 用 '财神节' 替换 '情人节情人节情人节' 中的子串 '情人节'
# 从 'MySQL数据库' 截取出 'MySQL'
select replace('情人节情人节情人节','情人节','财神节'), substr('MySQL数据库',1,5);
# 反转字符串 'MySQL数据库',判断 c 和 'MySQL数据库' 是否相等
select reverse('MySQL数据库'), nullif('MySQL数据库','Oracle数据库');
# 返回字符串 'ab' 在字符串列表 'abc','a','b','ab' 中第一次出现的位置
# 返回字符串 'ab' 在字符串 'abc,a,b,ab' 中第一次出现的位置
select field('ab','abc','a','b','ab'), find_in_set('ab','abc,a,b,ab'); |