このトピックでは、AnalyticDB for MySQLクラスターでサポートされている通常の関数について説明します。
前提条件
AnalyticDB for MySQLクラスターのマイナーエンジンバージョンは3.1.5.10以降です。
説明 クラスターのマイナーエンジンバージョンを表示する方法の詳細については、AnalyticDB for MySQLクラスターのバージョンを照会するにはどうすればよいですか?
REGEXP_INSTR
regexp_instr(source, pattern[, position[, occurrence[, option]]] )
- 説明: この関数は、正規表現を文字列と照合し、一致した部分文字列の開始位置または終了位置を示す整数を返します。 既定では、positionパラメーターは1に設定されています。これは、一致が指定された文字列の最初の文字から始まることを示します。 デフォルトでは、occurrenceパラメーターは1に設定されています。これは、最初に一致した部分文字列が返されることを示します。 デフォルトでは、optionパラメーターは0に設定されています。これは、一致した部分文字列の開始位置が返されることを示します。 オプションを1に設定すると、一致した部分文字列の次の文字位置が返されます。
- パラメーター:
source
: 検索する文字列。 データ型: VARCHAR。pattern
: 正規表現。position
: 指定した文字列と一致する開始位置。 デフォルト値は 1 です。 データ型: BIGINT。occurrence
: 返される一致した部分文字列の出現のシーケンス番号。 デフォルト値は 1 です。 データ型: BIGINT。option
: 一致の最初の文字のオフセットを返すか、一致の最後に続く最初の文字のオフセットを返すかを指定します。 有効な値: 0と1。 デフォルト値:0 データ型: BIGINT。
- 戻り値: 戻り値はBIGINT型です。 一致するものが見つからない場合、0の値が返されます。
- 例:
- 例1
以下の情報が返されます:SELECT REGEXP_INSTR('dog cat dog', 'dog') as res;
+ ----- + | res | + ----- + | 1 | + ----- +
- 例2
以下の情報が返されますSELECT REGEXP_INSTR('dog cat dog', 'dog', 1, 2) as res;
。| res | + ----- + | 9 | + ----- +
- 例3
以下の情報が返されますSELECT REGEXP_INSTR('dog cat dog', 'dog', 1, 1, 1) as res;
。| res | + ----- + | 4 | + ----- +
- 例1
REGEXP_MATCHES
regexp_matches(source, pattern[, flag])
- 説明: この関数は、正規表現を文字列と照合し、一致した部分文字列の配列を返します。 指定された正規表現にgフラグが含まれている場合、一致したすべての部分文字列が配列に返されます。 それ以外の場合、最初に一致した部分文字列のみが配列に返されます。 patternパラメーターの値にsubexpressionsが含まれている場合、subexpressionsの一致した部分文字列が配列に返されます。 それ以外の場合、指定された正規表現の一致した部分文字列が配列に返されます。
- パラメーター:
source
: 検索する文字列。 データ型: VARCHAR。pattern
: 正規表現。flag
: 関数の動作を制御する1つ以上の文字。 データ型: VARCHAR。
- 戻り値: 戻り値はARRAY(ARRAY(VARCHAR)) 型です。 一致するものが見つからない場合は、空の配列が返されます。
- 例:
- 例1
次の情報が返されます:SELECT regexp_matches('foobarbequebaz', '(bar)(beque)');
+ --------------------- + | regexp_matches | + --------------------- + | [["bar","beque"]] |
- 例2
次の情報が返されます:SELECT regexp_matches('foobarbequebaz', 'barbeque');
+ --------------------- + | regexp_matches | + --------------------- + | [["barbeque"]] |
- 例3
次の情報が返されます:SELECT regexp_matches ('foobarbebazilbarfbonk', '(b[^ b]+)(b[^ b]+)', 'g');
+ ------------------------------------------ + | regexp_matches | + ------------------------------------------ + | [["bar","beque"]], ["bazil","barf"]] |
- 例1
REGEXP_REPLACE
regexp_replace(source, pattern, replacement[, position[, occurrence]])
- 説明: この関数は、正規表現を文字列と照合し、一致した部分文字列を置き換えます。 デフォルトでは、positionパラメーターは1に設定されています。これは、一致と置換が指定された文字列の最初の文字から始まることを示します。 デフォルトでは、occurrenceパラメーターは0に設定されています。これは、一致するすべての部分文字列が置き換えられることを示します。
- パラメーター:
source
: 検索する文字列。 データ型: VARCHAR。pattern
: 正規表現。replacement
: 一致を置き換えるために使用される文字列。 データ型: VARCHAR。position
: 一致して置き換える開始位置。 デフォルト値は 1 です。 データ型: BIGINT。occurrence
: 返される一致および置換された部分文字列の出現のシーケンス番号。 デフォルト値:0 データ型: BIGINT。
- 戻り値: 戻り値はVARCHAR型です。 一致する文字列が見つからない場合は、指定された文字列が返されます。
- 例:
- 例1
次の情報が返されますSELECT REGEXP_REPLACE('abc def ghi ', '[a-z]+ ', 'X') as res;
。| res | + ------- | X X X | + ------- +
- 例2
以下の情報が返されます:SELECT REGEXP_REPLACE('abc def ghi ', '[a-z]+ ', 'X', 1, 3) as res;
+ ----------- + | res | + ---------- | abc def X | + ----------
- 例1
REGEXP_SUBSTR
regexp_subth (source, pattern[, position[, occurrence]])
- 説明: この関数は、正規表現を文字列と照合し、一致した部分文字列を返します。 既定では、positionパラメーターは1に設定されています。これは、一致が指定された文字列の最初の文字から始まることを示します。 デフォルトでは、occurrenceパラメーターは1に設定されています。これは、最初に一致した部分文字列が返されることを示します。
- パラメーター:
source
: 検索する文字列。 データ型: VARCHAR。pattern
: 正規表現。position
: 指定した文字列と一致する開始位置。 デフォルト値は 1 です。 データ型: BIGINT。occurrence
: 返される一致した部分文字列の出現のシーケンス番号。 デフォルト値は 1 です。 データ型: BIGINT。
- 戻り値: 戻り値はVARCHAR型です。 一致するものが見つからない場合は、NULLが返されます。
- 例:
- 例1
次の情報が返されますSELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+', 1, 3) as res;
。| res | + ------ | ghi | + ------ +
- 例2
次の情報が返されます。SELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+') as res;
| res | + ------ | abc | + ------ +
- 例1