全部產品
Search
文件中心

PolarDB:字串函數

更新時間:Nov 14, 2024

本文介紹了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 ", "Google ", "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("example.com", 1, 6, "runoob");

返回:

-- runoobe.com

LOCATE(s1,s)

從字串s中擷取s1的開始位置

  • 擷取st在字串myteststring中的位置:

    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('a*b','*',1);

    返回:

    -- a

  • SELECT SUBSTRING_INDEX('a*b','*',-1);

    返回:

    -- b

  • SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',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

同音字串比較