字符串函数
本文介绍了PolarDB-X支持及不支持的字符串函数。
支持函数
PolarDB-X支持如下字符串函数:
函数名 | 描述 | 示例 |
---|---|---|
ASCII(s) | 返回字符串s的第一个字符的ASCII码 | 返回CustomerName字段第一个字母的ASCII码: SELECT ASCII(CustomerName) AS NumCodeOfFirstChar FROM Customers; |
CHAR_LENGTH(s) | 返回字符串s的字符数 | 返回字符串RUNOOB的字符数: SELECT CHAR_LENGTH("RUNOOB") AS LengthOfString; |
CHARACTER_LENGTH(s) | 返回字符串s的字符数 | 返回字符串RUNOOB的字符数: SELECT CHARACTER_LENGTH("RUNOOB") AS LengthOfString; |
CONCAT(s1,s2...sn) | 字符串s1,s2等多个字符串合并为一个字符串 | 合并多个字符串: SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook") AS ConcatenatedString; |
CONCAT_WS(x, s1,s2...sn) | 同CONCAT(s1,s2,...)函数,但是每个字符串之间要加上x,x可以是分隔符 | 合并多个字符串,并添加分隔符: SELECT CONCAT_WS("-", "SQL", "Tutorial", "is", "fun!") AS ConcatenatedString; |
FIELD(s,s1,s2...) | 返回第一个字符串s在字符串列表(s1,s2...)中的位置 | 返回字符串c在列表值中的位置: SELECT FIELD("c", "a", "b", "c", "d", "e"); |
FIND_IN_SET(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置 | 返回字符串c在指定字符串中的位置: SELECT FIND_IN_SET("c", "a,b,c,d,e"); |
FORMAT(x,n) | 函数可以将数字x进行格式化"#,###.##", 将x保留到小数点后n位,最后一位四舍五入。 | 格式化数字"#,###.##"形式: SELECT FORMAT(250500.5634, 2); 返回: -- 250,500.56 |
INSERT(s1,x,len,s2) | 字符串s2替换s1的x位置开始长度为len的字符串 | 从字符串第一个位置开始的6个字符替换为 runoob: SELECT INSERT("google.com", 1, 6, "runoob"); 返回: -- runoob.com |
LOCATE(s1,s) | 从字符串s中获取s1的开始位置 | 获取b在字符串abc中的位置:SELECT LOCATE('st','myteststring'); 返回: -- 5 返回字符串abc中b的位置:SELECT LOCATE('b', 'abc'); 返回: -- 2 |
LCASE(s) | 将字符串s的所有字母变成小写字母 | 字符串RUNOOB转换为小写: SELECT LCASE('RUNOOB'); 返回: -- runoob |
LEFT(s,n) | 返回字符串s的前n个字符 | 返回字符串runoob中的前两个字符: SELECT LEFT('runoob',2); 返回: -- ru |
LOWER(s) | 将字符串s的所有字母变成小写字母 | 字符串RUNOOB转换为小写: SELECT LOWER('RUNOOB'); -- runoob |
LPAD(s1,len,s2) | 在字符串s1的开始处填充字符串s2,使字符串长度达到len | 将字符串xx填充到abc字符串的开始处: SELECT LPAD('abc',5,'xx') 返回: -- xxabc |
LTRIM(s) | 去掉字符串s开始处的空格 | 去掉字符串RUNOOB开始处的空格: SELECT LTRIM("RUNOOB") AS LeftTrimmedString; 返回: -- RUNOOB |
MID(s,n,len) | 从字符串s的n位置截取长度为len的子字符串,同SUBSTRING(s,n,len) | 从字符串RUNOOB中的第2个位置截取3个 字符: SELECT MID("RUNOOB", 2, 3) AS ExtractString; 返回: -- UNO |
POSITION(s1 IN s) | 从字符串s中获取s1的开始位置 | 返回字符串abc中b的位置: SELECT POSITION('b' in 'abc'); 返回: -- 2 |
REPEAT(s,n) | 将字符串s重复n次 | 将字符串runoob重复三次: SELECT REPEAT('runoob',3; 返回: -- runoobrunoobrunoob |
REPLACE(s,s1,s2) | 将字符串s2替代字符串s中的字符串s1 | 将字符串abc中的字符a替换为字符x: SELECT REPLACE('abc','a','x'); 返回: --xbc |
REVERSE(s) | 将字符串s的顺序反过来 | 将字符串abc的顺序反过来: SELECT REVERSE('abc'); 返回: -- cba |
RIGHT(s,n) | 返回字符串s的后n个字符 | 返回字符串runoob的后两个字符: SELECT RIGHT('runoob',2); 返回: -- ob |
RPAD(s1,len,s2) | 在字符串s1的结尾处添加字符串s2,使字符串的长度达到len | 将字符串xx填充到abc字符串的结尾处: SELECT RPAD('abc',5,'xx'); 返回: -- abcxx |
RTRIM(s) | 去掉字符串s结尾处的空格 | 去掉字符串RUNOOB的末尾空格: SELECT RTRIM("RUNOOB") AS RightTrimmedString; 返回: -- RUNOOB |
SPACE(n) | 返回n个空格 | 返回10个空格: SELECT SPACE(10); |
STRCMP(s1,s2) | 比较字符串s1和s2,如果s1与s2相等返回0 ,如果s1>s2返回1,如果s1\<s2,返回-1 | 比较字符串: SELECT STRCMP("runoob", "runoob"); 返回: -- 0 |
SUBSTR(s, start, length) | 从字符串s的start位置截取长度为length的子字符串 | 从字符串RUNOOB中的第2个位置截取3个 字符: SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString; 返回: -- UNO |
SUBSTRING(s, start, length) | 从字符串s的start位置截取长度为length的子字符串 | 从字符串RUNOOB中的第2个位置截取3个 字符: SELECT SUBSTRING("RUNOOB", 2, 3) AS ExtractString; 返回: -- UNO |
SUBSTRING_INDEX(s, delimiter, number) | 返回从字符串s的第number个出现的分隔符delimiter之后的子串。 如果number是正数,返回第number个字符左边的字符串。 如果number是负数,返回第(number的绝对值(从右边数))个字符右边的字符串。 | `SELECT SUBSTRING_INDEX('ab','',1);返回: -- a` SUBSTRING_INDEX('a*b','*',-1); 返回: -- b `SUBSTRING_INDEX(SUBSTRING_INDEX('abcde','',3),'*',-1);返回: -- c` |
TRIM(s) | 去掉字符串s开始和结尾处的空格 | 去掉字符串RUNOOB的首尾空格: SELECT TRIM('RUNOOB') AS TrimmedString; |
UCASE(s) | 将字符串转换为大写 | 将字符串runoob转换为大写: SELECT UCASE("runoob"); 返回: -- RUNOOB |
UPPER(s) | 将字符串转换为大写 | 将字符串runoob转换为大写: SELECT UPPER("runoob"); 返回: -- RUNOOB |
不支持函数
与MySQL5.7相比,PolarDB-X暂不支持如下字符串函数:
函数名 | 描述 |
---|---|
LOAD_FILE() | 加载文件 |
MATCH | 全文检索 |
SOUNDS LIKE | 同音字符串比较 |