すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:文字列関数

最終更新日:Feb 06, 2026

文字列関数を使用して、文字列を処理します。たとえば、文字の大文字・小文字の変換、空白の削除、部分文字列の抽出などが可能です。このトピックでは、AnalyticDB for MySQL の文字列関数の構文について説明し、使用例を示します。

  • ASCII:文字または文字列の先頭文字の ASCII 値を返します。

  • BIN:整数のバイナリ文字列表現を返します。

  • BIT_LENGTH:文字列の長さ(ビット単位)を返します。

  • CHAR:整数の 10 進 ASCII コードに対応する文字から構成される文字列を返します。

  • CHAR_LENGTH または CHARACTER_LENGTH:文字列の長さ(文字単位)を返します。

  • CONCAT:複数の文字列を連結します。

  • CONCAT_WS:指定された区切り文字を使用して、複数の文字列を連結します。

  • ELT:指定された文字列のリストから N 番目の文字列を返します。

  • ENCRYPT:文字列を暗号化します。

  • EXPORT_SET:整数のビット値に基づいて結合文字列を返します。

  • FIELD:文字列のリスト内で指定された文字列のインデックスを返します。

  • FIND_IN_SET:カンマ区切りのリスト内で文字列の位置を返します。

  • FORMAT:数値 N をフォーマットし、文字列として返します。

  • FROM_BASE64:Base64 エンコードされた文字列をデコードし、デコード結果を返します。

  • FROM_UTF8:UTF-8 エンコードされた文字列をデコードし、デコード結果を返します。

  • HEX:整数または文字列をその 16 進文字列表現に変換します。

  • INSTR:文字列内での部分文字列の最初の出現位置を返します。

  • LEFT:文字列の左端から N 文字を返します。

  • LENGTH または OCTET_LENGTH:文字列の長さを返します。

  • LIKE:シンプルなパターン一致を行います。

  • LOCATE:別の文字列内での部分文字列の最初の出現位置を返します。

  • LOWER または LCASE:文字列を小文字に変換します。

  • LPAD:文字列の左側を埋めます。

  • LTRIM:文字列の先頭の空白を削除します。

  • MAKE_SET:カンマ区切りの文字列のセットを返します。

  • MD5_MUR:文字列を数値に変換します。

  • MID:文字列内の指定位置から指定長の部分文字列を返します。この関数は SUBSTR または SUBSTRING と同じです。

  • OCT:指定された整数の 8 進文字列表現を返します。

  • ORD:先頭文字がマルチバイト文字の場合、その文字のコードを返します。

  • POSITION:文字列内での部分文字列の最初の出現位置を返します。

  • REPEAT:指定回数だけ文字列を繰り返した文字列を返します。

  • REPLACE:文字列の一部を指定された文字列で置き換えます。

  • REVERSE:文字列を逆順に並べ替えます。

  • RIGHT:文字列の右端から指定数の文字を返します。

  • RLIKE または REGEXP:文字列を正規表現と照合します。照合に成功した場合は 1 を、失敗した場合は 0 を返します。

  • RPAD:文字列の右側を埋めます。

  • RTRIM:文字列の末尾の空白を削除します。

  • SPACE:指定数の空白からなる文字列を返します。

  • SPLIT:デリミタで文字列を分割し、配列を返します。

  • SPLIT_PART:デリミタで文字列を分割し、指定インデックスの部分文字列を返します。

  • SPLIT_TO_MAPentryDelimiter および keyValueDelimiter を使用して文字列を分割し、map を返します。

  • STRCMP:2 つの文字列を比較し、同一の場合は 0、現在のソート順で第 1 引数が第 2 引数より小さい場合は -1、それ以外の場合は 1 を返します。

  • SUBSTR または SUBSTRING:指定位置から指定長の部分文字列を返します。

  • SUBSTRING_INDEX:文字列から、デリミタの指定回数の前後いずれかの部分文字列を返します。

  • TO_BASE64:文字列の Base64 エンコード形式を返します。

  • TO_UTF8:文字列の UTF-8 エンコード形式を返します。

  • TRIM:文字列の先頭および末尾のすべての空白を削除します。

  • UPPER または UCASE:文字列を大文字に変換します。

  • UNHEX:16 進数を文字に変換します。

ASCII

ascii(str)
  • 説明:文字 str または文字列 str の先頭文字の 10 進 ASCII 値を返します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:BIGINT。

  • 例:

    • 文:

      SELECT ascii('2');

      次の結果が返されます:

      +------------+
      | ascii('2') |
      +------------+
      |         50 |
      +------------+              
    • 文:

      SELECT ascii('dx');           

      次の結果が返されます:

      +-------------+
      | ascii('dx') |
      +-------------+
      |         100 |
      +-------------+      

BIN

bin(N)
  • 説明:N のバイナリ文字列表現を返します。

    Nnull の場合、NULL が返されます。

  • 入力パラメーターのデータの型:BIGINT。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT bin(12);

    次の結果が返されます:

    +---------+
    | bin(12) |
    +---------+
    | 1100    |
    +---------+

BIT_LENGTH

bit_length(str)
  • 説明:文字列 str の長さ(ビット単位)を返します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:BIGINT。

  • 例:

    • 文:

      SELECT bit_length('text');

      次の結果が返されます:

      +--------------------+
      | bit_length('text') |
      +--------------------+
      |                 32 |
      +--------------------+              
    • 文:

      SELECT bit_length('China');

      次の結果が返されます:

      +---------------------+
      | bit_length('China') |
      +---------------------+
      |                  40 |
      +---------------------+

CHAR

char(N1, N2, ...)
  • 説明:整数 N1N2 などの 10 進 ASCII コードに対応する文字から構成される文字列を返します。

  • 入力パラメーターのデータの型:BIGINT。

  • 戻り値のデータの型:VARBINARY。

  • 例:

    SELECT char(97,110,97,108,121,116,105,99,100,98);                   

    次の結果が返されます:

    +-------------------------------------------+
    | char(97,110,97,108,121,116,105,99,100,98) |
    +-------------------------------------------+
    | analyticdb                                |
    +-------------------------------------------+

CHAR_LENGTH または CHARACTER_LENGTH

char_length(str)
character_length(str)
  • 説明:文字列 str の長さ(文字単位)を返します。

    漢字 1 文字の長さは 1 です。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:BIGINT。

  • 例:

    • 文:

      SELECT char_length('China');

      次の結果が返されます:

      +----------------------+
      | char_length('China') |
      +----------------------+
      |                    5 |
      +----------------------+
    • 文:

      SELECT char_length('abc');

      次の結果が返されます:

      +--------------------+
      | char_length('abc') |
      +--------------------+
      |                  3 |
      +--------------------+                  

CONCAT

concat(str 1, …, str n)
  • 説明:複数の文字列を連結します。いずれかのパラメーターが null の場合、戻り値は null になります。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 文:

      SELECT concat('aliyun', ', ', 'analyticdb');

      次の結果が返されます:

      +--------------------------------------+
      | concat('aliyun', ', ', 'analyticdb') |
      +--------------------------------------+
      | aliyun, analyticdb                   |
      +--------------------------------------+                
    • 文:

      SELECT concat('abc',null,'def');

      次の結果が返されます:

      +--------------------------+
      | concat('abc',null,'def') |
      +--------------------------+
      | NULL                     |
      +--------------------------+       

CONCAT_WS

concat_ws(separator, str 1, …, str n)
  • 説明:指定された区切り文字を使用して複数の文字列を連結します。最初のパラメーター separator は、他のパラメーターのデリミタです。null の文字列は連結時にスキップされます。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 文:

      SELECT concat_ws(',', 'First name', 'Second name', 'Last Name')AS result;                   

      次の結果が返されます:

      +----------------------------------+
      | result                           |
      +----------------------------------+
      | First name,Second name,Last Name |
      +----------------------------------+                   
    • 文:

      SELECT concat_ws(',','First name',NULL,'Last Name')AS result;                 

      次の結果が返されます:

      +----------------------+
      | result               |
      +----------------------+
      | First name,Last Name |
      +----------------------+                  

ELT

elt(N, str 1, ...,str n);
  • N 番目の文字列を返します。

    N<1 または N が文字列パラメーターの数より大きい場合、null が返されます。

  • 入力パラメーターのデータの型:N は BIGINT 型、str は VARCHAR 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT elt(4, 'Aa', 'Bb', 'Cc', 'Dd');               

    次の結果が返されます:

    +--------------------------------+
    | elt(4, 'Aa', 'Bb', 'Cc', 'Dd') |
    +--------------------------------+
    | Dd                             |
    +--------------------------------+

暗号化

encrypt(x, y);
  • 説明:x パラメーターを暗号化します。y はソルト値です。

  • 入力パラメーターのデータの型:x は VARBINARY 型、y は VARCHAR 型です。

  • 戻り値のデータの型:VARBINARY

  • 例:

    SELECT encrypt('abdABC123','key');              

    次の結果が返されます:

    +--------------------------------------------------------+
    | encrypt('abdABC123','key')                             |
    +--------------------------------------------------------+
    | 0x6B657A617A6D63496F2E614377                           |
    +--------------------------------------------------------+

EXPORT_SET

export_set(bits, onstr, offstr [, separator[,number_of_bits]]);
  • 説明:bits をバイナリ値に変換します。各パラメーターの説明は以下のとおりです:

    • システムはバイナリ値を右から左へチェックします。ビットが 1 の場合、onstr 値に置き換えられます。ビットが 0 の場合、offstr 値に置き換えられます。

    • 戻り値は separator で区切られます。

    • number_of_bits はチェックするビット数を指定します。デフォルト値は 64 です。number_of_bits に 64 より大きい値を指定した場合、値は 64 に切り捨てられます。number_of_bits に -1 を指定した場合、デフォルト値 64 が使用されます。

  • 入力パラメーターのデータの型:bits および number_of_bits は BIGINT 型です。onstroffstrseparator は VARCHAR 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 5 をバイナリ値に変換し、右から左へ最初の 2 ビットを取り出します。1 を a に、0 を b に置き換え、ab をカンマ (,) で区切ります。文は以下のとおりです:

      SELECT export_set(5,'a','b',',',2);

      次の結果が返されます:

      +-----------------------------+
      | export_set(5,'a','b',',',2) |
      +-----------------------------+
      | a,b                         |
      +-----------------------------+             
    • 6 をバイナリ値に変換し、右から左へ最初の 10 ビットを取り出します。1 を 1 に、0 を 0 に置き換え、10 をカンマ (,) で区切ります。文は以下のとおりです:

      SELECT export_set(6,'1','0',',',10);             

      次の結果が返されます:

      +------------------------------+
      | export_set(6,'1','0',',',10) |
      +------------------------------+
      | 0,1,1,0,0,0,0,0,0,0          |
      +------------------------------+

FIELD

FIELD(str, str 1, str 2,..., str n);
  • 説明:strstr 1str 2、...、str n のリスト内で何番目にあるかのインデックスを返します。str が見つからない場合は、0 が返されます。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:BIGINT。

  • 例:

    SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');             

    次の結果が返されます:

    sq+-------------------------------------------+
    | FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff') |
    +-------------------------------------------+
    |                                         2 |
    +-------------------------------------------+

FIND_IN_SET

find_in_set(str, strlist)            
  • 説明:strstrlist のリスト内で何番目にあるかの位置を返します。

    strstrlist 内に存在しない場合、または strlist が空文字列の場合、0 が返されます。

    str または strlist パラメーターのいずれかが null の場合、null が返されます。

  • 入力パラメーターのデータの型:str および strlist は VARCHAR 型です。

  • 戻り値のデータの型:BIGINT。

  • 例:

    SELECT find_in_set('b','a,b,c,d');        

    次の結果が返されます:

    +----------------------------+
    | find_in_set('b','a,b,c,d') |
    +----------------------------+
    |                          2 |
    +----------------------------+

フォーマット

format(X, D)
  • 説明:数値 X#,###,###.## 形式にフォーマットし、D 小数点以下に丸め、結果を文字列として返します。

    D0 の場合、結果には小数点や小数部が含まれません。

  • 入力パラメーターのデータの型:X は DOUBLE 型、D は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT format(12332.123456, 4)AS result1, format(12332.1,4)AS result2, format(12332.2,0)AS result3;

    次の結果が返されます:

    +-------------+-------------+---------+
    | result1     | result2     | result3 |
    +-------------+-------------+---------+
    | 12,332.1235 | 12,332.1000 | 12,332  |
    +-------------+-------------+---------+

FROM_BASE64

from_base64(x)
  • 説明:Base64 エンコードされたパラメーター x をデコードし、デコード結果を返します。

  • 入力パラメーターのデータの型:VARBINARY または VARCHAR。

  • 戻り値のデータの型:VARBINARY。

    説明

    デコード後の戻り値は VARBINARY 型です。結果を VARCHAR 型に変換するには、以下のいずれかの方法を使用します:

    • AnalyticDB for MySQL クラスターのバージョンが 3.1.4 以降の場合、CAST AS VARCHAR 関数を使用してデータ型を変換できます。詳細については、「CAST 関数」をご参照ください。

    • AnalyticDB for MySQL クラスターのバージョンが V3.1.4 より前の場合、FROM_UTF8 関数を使用してデータ型を変換できます。詳細については、「FROM_UTF8」をご参照ください。

  • 例:

    • 入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:

      SELECT from_base64('Q2hpbmE=');         

      次の結果が返されます:

      +--------------------------------------------------+
      | from_base64('Q2hpbmE=')                          |
      +--------------------------------------------------+
      | 0x4368696E61                                     |
      +--------------------------------------------------+
      説明

      上記文の戻り値は VARBINARY 型です。元の VARCHAR 値を取得するには、以下の文を実行します:

      SELECT cast(from_base64('Q2hpbmE=') AS varchar);

      次の結果が返されます:

      +------------------------------------------+
      | cast(from_base64('Q2hpbmE=') AS varchar) |
      +------------------------------------------+
      | China                                    |
      +------------------------------------------+
    • 入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:

      SELECT from_base64(cast(to_base64('China') AS varbinary));

      次の結果が返されます:

      +--------------------------------------------------------------------------------------------------------+
      | from_base64(cast(to_base64('China') AS varbinary))                                                     |
      +--------------------------------------------------------------------------------------------------------+
      | 0x4368696E61                                                                                           |
      +--------------------------------------------------------------------------------------------------------+

FROM_UTF8

from_utf8(x)
from_utf8(x, y)
  • 説明:

    • from_utf8(x):UTF-8 エンコードされた x をデコードし、デコード結果を返します。

    • from_utf8(x, y):パラメーター x を UTF-8 文字列としてデコードし、無効な文字を指定された文字で置き換えます。

      説明
      • y パラメーターは任意です。y を指定しない場合、デフォルトで が返されます。

      • y には無効な文字自体(例:#)またはその ASCII コード(例:35)を指定できます。

  • 入力パラメーターのデータの型:x は VARBINARY 型、y は VARCHAR 型または BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • UTF-8 エンコードされたパラメーターをデコードし、結果を返します。文は以下のとおりです:

      SELECT from_utf8(to_utf8('hello'));

      次の結果が返されます:

      +-----------------------------+
      | from_utf8(to_utf8('hello')) |
      +-----------------------------+
      | hello                       |
      +-----------------------------+
    • UTF-8 エンコードされていないパラメーターをデコードします。文は以下のとおりです:

      SELECT from_utf8(unhex('58BF'));

      次の結果が返されます:

      +--------------------------+
      | from_utf8(unhex('58BF')) |
      +--------------------------+
      | X                       |
      +--------------------------+
    • UTF-8 エンコードされていないパラメーターをデコードし、無効な文字を # で置き換えます。文は以下のとおりです:

      SELECT from_utf8(unhex('58BF'), '#');

      次の結果が返されます:

      +-------------------------------+
      | from_utf8(unhex('58BF'), '#') |
      +-------------------------------+
      | X#                            |
      +-------------------------------+
    • UTF-8 エンコードされていないパラメーターをデコードし、無効なバイトシーケンスを ASCII コード 35 の無効な文字で置き換えます。文は以下のとおりです:

      SELECT from_utf8(unhex('58BF'), '35');

      次の結果が返されます:

      +-------------------------------+
      | from_utf8(unhex('58BF'), '35') |
      +-------------------------------+
      | X#                            |
      +-------------------------------+

HEX

hex(x)
  • 説明:パラメーター x をその 16 進文字列表現に変換します。

  • 入力パラメーターのデータの型:BIGINT または VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 入力値が BIGINT 型の場合、文は以下のとおりです:

      SELECT hex(16);

      次の結果が返されます:

      +---------+
      | hex(16) |
      +---------+
      | 10      |
      +---------+
    • 入力値が VARCHAR 型の場合、文は以下のとおりです:

      SELECT hex('16');

      次の結果が返されます:

      +-----------+
      | hex('16') |
      +-----------+
      | 3136      |
      +-----------+                  

INSTR

instr(str, substr)
  • 説明:文字列 str 内での部分文字列 substr の最初の出現位置を返します。

  • 入力パラメーターのデータの型:str および substr は VARCHAR 型です。

  • 戻り値のデータの型:BIGINT。

  • 例:

    SELECT instr('foobarbar', 'bar');

    次の結果が返されます:

    +---------------------------+
    | instr('foobarbar', 'bar') |
    +---------------------------+
    |                         4 |
    +---------------------------+

LEFT

LEFT(str, len)
  • 説明:文字列 str の左端から len 文字を返します。

    str または lennull の場合、null が返されます。

  • 入力パラメーターのデータの型:str は VARCHAR 型、len は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT LEFT('foobarbar', 5);

    次の結果が返されます:

    +----------------------+
    | LEFT('foobarbar', 5) |
    +----------------------+
    | fooba                |
    +----------------------+

LENGTH または OCTET_LENGTH

length(str)
octet_length(str)
  • 説明:文字列 str の長さを返します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:BIGINT。

  • 例:

    SELECT length('aliyun');

    次の結果が返されます:

    +------------------+
    | length('aliyun') |
    +------------------+
    |                6 |
    +------------------+

LIKE

expression [NOT] LIKE pattern [ESCAPE 'escape_char']
  • 説明:LIKE オペレーターは、文字列 expressionpattern と照合します。照合に成功した場合は 1 を、失敗した場合は 0 を返します。各パラメーターの説明は以下のとおりです:

    • pattern はワイルドカードパターンです。使用可能なワイルドカードは以下のとおりです:

      • %:任意の長さの文字列に一致します。

      • _:1 文字に一致します。

    • escape_char: pattern 内の % および _ 文字をエスケープし、エスケープ文字に続く % および _ がワイルドカードとして使用されないようにします。

  • 入力パラメーターのデータの型:expression および pattern は VARCHAR 型です。

  • 戻り値のデータの型:BIGINT。

  • 例:

    • 文:

      SELECT 'David!' LIKE 'David_' AS result1, 'David!' NOT LIKE 'David_' AS result2,  'David!' LIKE '%D%v%' AS result3;

      次の結果が返されます:

      +---------+---------+---------+
      | result1 | result2 | result3 |
      +---------+---------+---------+
      |       1 |       0 |       1 |
      +---------+---------+---------+            
    • 文:

      SELECT 'David_' LIKE 'David|_' ESCAPE '|';

      次の結果が返されます:

      +----------------------------------+
      | David_' LIKE 'David|_' ESCAPE '| |
      +----------------------------------+
      |                                1 |
      +----------------------------------+

LOCATE

locate(substr, str)
locate(substr, str, pos)
  • 説明:文字列 str 内での substr の最初の出現位置を返します。あるいは、str 内で pos から始まる substr の最初の出現位置を返します。

    substrstr 内に存在しない場合、0 が返されます。

    substr または strnull の場合、null が返されます。

  • 入力パラメーターのデータの型:str および substr は VARCHAR 型、pos は BIGINT 型です。

  • 戻り値のデータの型:BIGINT。

  • 例:

    • 文:

      SELECT locate('bar', 'foobarbar');                

      次の結果が返されます:

      +----------------------------+
      | locate('bar', 'foobarbar') |
      +----------------------------+
      |                          4 |
      +----------------------------+                
    • 文:

      SELECT locate('bar', 'foobarbar', 7);              

      次の結果が返されます:

      +-------------------------------+
      | locate('bar', 'foobarbar', 7) |
      +-------------------------------+
      |                             7 |
      +-------------------------------+                   

LOWER または LCASE

lower(str)
lcase(str)
  • 説明:文字列 str の文字を小文字に変換します。

  • 戻り値の型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT lower('Aliyun');

    次の結果が返されます:

    +-----------------+
    | lower('Aliyun') |
    +-----------------+
    | aliyun          |
    +-----------------+

LPAD

lpad(str, len, padstr)
  • 説明:文字列 strpadstr で左側から埋め、len 文字の長さにし、埋められた文字列を返します。

    strlen より長い場合、戻り値は len 文字に短縮されます。

  • 入力パラメーターのデータの型:str および padstr は VARCHAR 型、len は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT lpad('Aliyun',9,'#');              

    次の結果が返されます:

    +----------------------+
    | lpad('Aliyun',9,'#') |
    +----------------------+
    | ###Aliyun            |
    +----------------------+

LTRIM

ltrim(str)
  • 説明:文字列 str の先頭のすべての空白を削除します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT ltrim('  abc');

    次の結果が返されます:

    +----------------+
    | ltrim('  abc') |
    +----------------+
    | abc            |
    +----------------+

MAKE_SET

make_set(bits, str 1, str 2,...);
  • 説明:セット値(サブストリングを文字で区切った文字列)を返します。セットには、対応するビットが設定されている文字列が含まれます。

    str 1 はビット 0 に対応し、str 2 はビット 1 に対応し、以下同様です。null 値は str 1str 2 などから結果に追加されません。

  • 入力パラメーターのデータの型:bits は BIGINT 型、str は VARCHAR 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 文:

      SELECT make_set(5,'hello','nice','world');

      次の結果が返されます:

      +------------------------------------+
      | make_set(5,'hello','nice','world') |
      +------------------------------------+
      | hello,world                        |
      +------------------------------------+               
    • 文:

      SELECT make_set(1 | 4,'hello','nice',NULL,'world')AS result;    

      次の結果が返されます:

      +--------+
      | result |
      +--------+
      | hello  |
      +--------+                

MD5_MUR

MD5_MUR(x)
  • 説明:入力パラメーター x の MD5 ハッシュを計算し、その後 MurmurHash3 アルゴリズムを使用してハッシュを LONG ハッシュ値に変換します。この関数は CRC32 アルゴリズムよりも衝突率が低くなります。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:LONG。

  • バージョン要件:クラスターのカーネルバージョンが 3.2.5 以降である必要があります。

  • 使用例:

    • 文:

      SELECT MD5_MUR('TEST') as result;
    • 次の結果が返されます:

      +--------------------------+
      | result |
      +--------------------------+
      | -6711128042951586494     |
      +--------------------------+                

MID

mid(str, pos, len)
  • 説明:この関数は SUBSTR または SUBSTRING と同等であり、文字列 strpos から len 文字の部分文字列を返します。

  • 入力パラメーターのデータの型:str は VARCHAR 型、pos および len は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 文:

      SELECT mid('Quadratically',5,6);

      次の結果が返されます:

      +--------------------------+
      | mid('Quadratically',5,6) |
      +--------------------------+
      | ratica                   |
      +--------------------------+                
    • 文:

      SELECT mid('Sakila', -5, 3);

      次の結果が返されます:

      +----------------------+
      | mid('Sakila', -5, 3) |
      +----------------------+
      | aki                  |
      +----------------------+

OCT

oct(N)
  • 説明:整数 N の 8 進文字列表現を返します。

    Nnull の場合、null が返されます。

  • 入力パラメーターのデータの型:BIGINT。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT oct(12);

    次の結果が返されます:

    +---------+
    | oct(12) |
    +---------+
    | 14      |
    +---------+

ORD

ord(x)
  • 説明:文字列 x の先頭文字がマルチバイト文字の場合、その文字のコードを返します。

  • 入力パラメーターのデータの型:VARBINARY または VARCHAR。

  • 戻り値のデータの型:LONG。

  • 例:

    • 入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:

      SELECT ord('China');

      次の結果が返されます:

      +--------------+
      | ord('China') |
      +--------------+
      |           67 |
      +--------------+
    • 入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:

      SELECT ord(cast('China' AS varbinary));

      次の結果が返されます:

      +---------------------------------+
      | ord(cast('China' AS varbinary)) |
      +---------------------------------+
      |                              67 |
      +---------------------------------+

POSITION

position(substr IN str);
  • 説明:文字列 str 内での部分文字列 substr の最初の出現位置を返します。位置は 1 から開始します。部分文字列が見つからない場合、0 が返されます。

  • 入力パラメーターのデータの型:substr および str は VARCHAR 型です。

  • 戻り値のデータの型:BIGINT。

  • 例:

    SELECT position('bar' in 'foobarbar');                 

    次の結果が返されます:

    +--------------------------------+
    | position('bar' in 'foobarbar') |
    +--------------------------------+
    |                              4 |
    +--------------------------------+

REPEAT

repeat(str, count);
  • 説明:strcount 回繰り返した文字列を返します。

    count<1 の場合、空文字列が返されます。

    str または countnull の場合、null が返されます。

  • 入力パラメーターのデータの型:str は VARCHAR 型、count は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 文:

      SELECT repeat('a', 3);            

      次の結果が返されます:

      +----------------+
      | repeat('a', 3) |
      +----------------+
      | aaa            |
      +----------------+             
    • 文:

      SELECT repeat('abc', null);

      次の結果が返されます:

      +---------------------+
      | repeat('abc', null) |
      +---------------------+
      | NULL                |
      +---------------------+                
    • 文:

      SELECT repeat(null, 3);

      次の結果が返されます:

      +-----------------+
      | repeat(null, 3) |
      +-----------------+
      | NULL            |
      +-----------------+                 

REPLACE

replace(str, from_str, to_str);
  • 説明:str 内の from_str のすべての出現箇所を to_str で置き換えます。

  • 入力パラメーターのデータの型:strfrom_strto_str は VARCHAR 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT replace('WWW.aliyun.com', 'W', 'w');

    次の結果が返されます:

    +-------------------------------------+
    | replace('WWW.aliyun.com', 'W', 'w') |
    +-------------------------------------+
    | www.aliyun.com                      |
    +-------------------------------------+

REVERSE

reverse(str);
  • 説明:文字列 str を逆順に並べ替えた文字列を返します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT reverse('123456');

    次の結果が返されます:

    +-------------------+
    | reverse('123456') |
    +-------------------+
    | 654321            |
    +-------------------+

RIGHT

RIGHT(str, len);
  • 説明:文字列 str の右端から len 文字を返します。

    str または lennull の場合、null が返されます。

  • 入力パラメーターのデータの型:str は VARCHAR 型、len は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT RIGHT('abc',3);             

    次の結果が返されます:

    +----------------+
    | RIGHT('abc',3) |
    +----------------+
    | abc            |
    +----------------+

RLIKE または REGEXP

expression RLIKE pattern;
expression REGEXP pattern;
  • 説明:文字列 expression が正規表現 pattern と一致する場合、1 を返し、一致しない場合は 0 を返します。

    expression または patternnull の場合、null が返されます。

  • 入力パラメーターのデータの型:expression および pattern は VARCHAR 型です。

  • 戻り値のデータの型:BOOLEAN。

  • 例:

    • 文:

      SELECT 'Michael!' REGEXP '.*';

      次の結果が返されます:

      +----------------------+
      | Michael!' REGEXP '.* |
      +----------------------+
      |                    1 |
      +----------------------+            
    • 文:

      SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';

      次の結果が返されます:

      +-------------------------------------+
      | new*\n*line' REGEXP 'new\\*.\\*line |
      +-------------------------------------+
      |                                   0 |
      +-------------------------------------+                
    • 文:

      SELECT 'c' REGEXP '^[a-d]';                 

      次の結果が返されます:

      +-------------------+
      | c' REGEXP '^[a-d] |
      +-------------------+
      |                 1 |
      +-------------------+                  

RPAD

rpad(str, len, padstr)
  • 説明:文字列 strpadstr で右側から埋め、len 文字の長さにし、埋められた文字列を返します。

    strlen より長い場合、戻り値は len 文字に短縮されます。

  • 入力パラメーターのデータの型:str および padstr は VARCHAR 型、len は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT rpad('Aliyun',9,'#');

    次の結果が返されます:

    +----------------------+
    | rpad('Aliyun',9,'#') |
    +----------------------+
    | Aliyun###            |
    +----------------------+

RTRIM

rtrim(str)
  • 説明:文字列 str の末尾のすべての空白を削除します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT rtrim('barbar   ');

    次の結果が返されます:

    +--------------------+
    | rtrim('barbar   ') |
    +--------------------+
    | barbar             |
    +--------------------+

SPACE

space(N);
  • 説明:指定された数の空白からなる文字列を返します。

    説明

    この関数は contact() 関数と併用して結果を表示できます。

  • 入力パラメーターのデータの型:BIGINT。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT concat("#", space(6), "#");

    次の結果が返されます:

    +----------------------------+
    | concat("#", space(6), "#") |
    +----------------------------+
    | #      #                   |
    +----------------------------+

SPLIT

split(string, delimiter)
  • 説明:stringdelimiter で分割し、配列を返します。

  • 入力パラメーターのデータの型:string および delimiter は VARCHAR 型です。

  • 戻り値のデータの型:ARRAY<varchar>。

  • 例:

    SELECT split('1#2#3', '#'), split('#1#2#3#', '#'),  split('123', '#');

    次の結果が返されます:

    +---------------------+-----------------------+-------------------+
    | split('1#2#3', '#') | split('#1#2#3#', '#') | split('123', '#') |
    +---------------------+-----------------------+-------------------+
    | ["1","2","3"]       | ["","1","2","3",""]   | ["123"]           |
    +---------------------+-----------------------+-------------------+

SPLIT_PART

split_part(string, delimiter, index)
  • 説明:stringdelimiter で分割し、配列インデックス index の位置にある部分文字列を返します。index は 1 から開始します。インデックスがフィールド数より大きい場合、NULL が返されます。

  • 入力パラメーターのデータの型:string および delimiter は VARCHAR 型、index は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT split_part('A#B#C', '#', 2), split_part('A#B#C', '#', 4);

    次の結果が返されます:

    +-----------------------------+-----------------------------+
    | split_part('A#B#C', '#', 2) | split_part('A#B#C', '#', 4) |
    +-----------------------------+-----------------------------+
    | B                           | NULL                        |
    +-----------------------------+-----------------------------+

SPLIT_TO_MAP

split_to_map(string, entryDelimiter, keyValueDelimiter)
  • 説明:文字列を entryDelimiter および keyValueDelimiter を使用して分割し、map を返します。entryDelimiter は文字列を key-value ペアに分割します。keyValueDelimiter は各 key-value ペアを keyvalue に分割します。

  • 入力パラメーターのデータの型:stringentryDelimiterkeyValueDelimiter は VARCHAR 型です。

  • 戻り値のデータの型:MAP<varchar, varchar>。

  • 例:

    SELECT split_to_map('k1:v1,k2:v2', ',', ':'),split_to_map('', ',', ':');

    次の結果が返されます:

    +---------------------------------------+----------------------------+
    | split_to_map('k1:v1,k2:v2', ',', ':') | split_to_map('', ',', ':') |
    +---------------------------------------+----------------------------+
    | {"k1":"v1","k2":"v2"}                 | {}                         |
    +---------------------------------------+----------------------------+

STRCMP

strcmp(str 1, str 2);
  • 説明:文字列 str 1str 2 が同一の場合、関数は 0 を返します。str 1 が現在のソート順で str 2 より小さい場合、-1 を返します。それ以外の場合は 1 を返します。

  • 入力パラメーターのデータの型:str 1 および str 2 は VARCHAR 型です。

  • 戻り値のデータの型:BIGINT。

  • 例:

    SELECT strcmp('text', 'text2');

    次の結果が返されます:

    +-------------------------+
    | strcmp('text', 'text2') |
    +-------------------------+
    |                      -1 |
    +-------------------------+

SUBSTR または SUBSTRING

substr(str, pos)
substr(str FROM pos)
substr(str, pos, len)
substr(str FROM pos FOR len)
substring(str, pos)
substring(str FROM pos)
substring(str, pos, len)
substring(str FROM pos FOR len)
  • 説明:

    • SUBSTRING(varchar str, bigint pos) および SUBSTRING(varchar str FROM pos) は、位置 pos から文字列の末尾までの部分文字列を返します。pos<0 の場合、開始位置は文字列の末尾から逆方向にカウントされます。

    • SUBSTRING(varchar str, bigint pos, bigint len) および SUBSTRING(varchar str FROM pos FOR len) は、位置 pos から長さ len の部分文字列を返します。 pos<0 の場合、開始位置は文字列の末尾から逆に数えられます。

  • 入力パラメーターのデータの型:str は VARCHAR 型、pos および len は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 文:

      SELECT substr('helloworld', 6);

      次の結果が返されます:

      +-------------------------+
      | substr('helloworld', 6) |
      +-------------------------+
      | world                   |
      +-------------------------+
    • 文:

      SELECT substr('helloworld' FROM 6);

      次の結果が返されます:

      +-----------------------------+
      | substr('helloworld' FROM 6) |
      +-----------------------------+
      | world                       |
      +-----------------------------+
    • 文:

      SELECT substr('helloworld', 6, 3);

      次の結果が返されます:

      +----------------------------+
      | substr('helloworld', 6, 3) |
      +----------------------------+
      | wor                        |
      +----------------------------+
    • 文:

      SELECT substr('helloworld' from 6 for 3);

      次の結果が返されます:

      +-----------------------------------+
      | substr('helloworld' FROM 6 FOR 3) |
      +-----------------------------------+
      | wor                               |
      +-----------------------------------+

SUBSTRING_INDEX

substring_index(str, delim, count)
  • 説明:文字列 str からデリミタ delim の count 番目の出現箇所の前後いずれかの部分文字列を返します。

    count>0 の場合、デリミタ (delim) の count 番目の出現箇所より左側のすべての文字列が返されます。カウントは左端から開始します。

    count<0 の場合、デリミタ (delim) の count 番目の出現箇所より右側のすべての文字列が返されます。カウントは右端から開始します。

    SUBSTRING_INDEX 関数は delim を大文字・小文字を区別して検索します。

  • 入力パラメーターのデータの型:str および delim は VARCHAR 型、count は BIGINT 型です。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT substring_index('www.aliyun.com', '.', 2);                 

    次の結果が返されます:

    +-------------------------------------------+
    | substring_index('www.aliyun.com', '.', 2) |
    +-------------------------------------------+
    | www.aliyun                                |
    +-------------------------------------------+

TO_BASE64

to_base64(x)
  • 説明:パラメーター x の Base64 エンコード形式を返します。

  • 入力パラメーターのデータの型:VARBINARY または VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:

      SELECT to_base64('China');

      次の結果が返されます:

      +--------------------+
      | to_base64('China') |
      +--------------------+
      | Q2hpbmE=           |
      +--------------------+
    • 入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:

      SELECT to_base64(cast('China' AS varbinary));

      次の結果が返されます:

      +---------------------------------------+
      | to_base64(cast('China' AS varbinary)) |
      +---------------------------------------+
      | Q2hpbmE=                              |
      +---------------------------------------+

TO_UTF8

to_utf8(x)
  • 説明:パラメーター x の UTF-8 エンコード形式を返します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT from_utf8(to_utf8('China'));

    次の結果が返されます:

    +-----------------------------+
    | from_utf8(to_utf8('China')) |
    +-----------------------------+
    | China                       |
    +-----------------------------+

TRIM

trim([remstr FROM] str)
trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
  • 説明:文字列 str を先頭および末尾の空白を削除するか、オプションの remstr 文字列と一致する文字を削除することでトリミングします。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    • 文:

      SELECT trim('  bar   ');

      次の結果が返されます:

      +------------------+
      | trim('  bar   ') |
      +------------------+
      | bar              |
      +------------------+                 
    • 文:

      SELECT trim(BOTH 'x' FROM 'xxxbarxxx');

      次の結果が返されます:

      +---------------------------------+
      | trim(BOTH 'x' FROM 'xxxbarxxx') |
      +---------------------------------+
      | bar                             |
      +---------------------------------+
    • 文:

      SELECT trim(LEADING 'x' FROM 'xxxbarxxx');

      次の結果が返されます:

      +------------------------------------+
      | trim(LEADING 'x' FROM 'xxxbarxxx') |
      +------------------------------------+
      | barxxx                             |
      +------------------------------------+
    • 文:

      SELECT trim(TRAILING 'x' from 'xxxbarxxx');

      次の結果が返されます:

      +-------------------------------------+
      | trim(TRAILING 'x' from 'xxxbarxxx') |
      +-------------------------------------+
      | xxxbar                              |
      +-------------------------------------+       

UPPER または UCASE

upper(str)
ucase(str)
  • 説明:文字列 str の文字を大文字に変換します。

  • 入力パラメーターのデータの型:VARCHAR。

  • 戻り値のデータの型:VARCHAR。

  • 例:

    SELECT upper('Aliyun');              

    次の結果が返されます:

    +-----------------+
    | upper('Aliyun') |
    +-----------------+
    | ALIYUN          |     

UNHEX

unhex(x);
  • 説明:パラメーター x 内の各 16 進数字ペアを数値として解釈し、その数値が表す文字に変換します。

  • 入力パラメーターのデータの型:VARBINARY または VARCHAR。

  • 戻り値のデータの型:VARBINARY。

    説明
    • デコード後の戻り値は VARBINARY 型です。結果を VARCHAR 型に変換するには、以下のいずれかの方法を使用します:

      • AnalyticDB for MySQL クラスターのバージョンが V3.1.4 以降の場合、CAST AS VARCHAR 関数を使用します。詳細については、「CAST 関数」をご参照ください。

      • AnalyticDB for MySQL クラスターのバージョンが V3.1.4 より前の場合、FROM_UTF8 関数を使用してデータ型を変換できます。詳細については、「FROM_UTF8」をご参照ください。

    • UNHEX の入力値に 16 進数以外の数字が含まれる場合、NULL が返されます。

  • 例:

    • 入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:

      SELECT unhex(hex('China'));

      次の結果が返されます:

      +------------------------------------------+
      | unhex(hex('China'))                      |
      +------------------------------------------+
      | China                                    |
      +------------------------------------------+
      説明

      上記文の戻り値は VARBINARY 型です。元の VARCHAR 値を取得するには、以下の文を実行します:

      SELECT cast(unhex(hex('China')) AS varchar);

      次の結果が返されます:

      +--------------------------------------+
      | cast(unhex(hex('China')) AS varchar) |
      +--------------------------------------+
      | China                                |
      +--------------------------------------+
    • 入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:

      SELECT unhex(cast(hex('China') AS varbinary));

      次の結果が返されます:

      +------------------------------------------+
      | unhex(cast(hex('China') AS varbinary))   |
      +------------------------------------------+
      | China                                    |
      +------------------------------------------+