宣言
REGEXP_INSTR(expr, pat [, pos [, occurrence [, return_option [, match_type ]]]])
説明
式 expr 内で式 pat に一致する部分文字列の開始位置を返します。マッチングルールに一致する部分文字列が存在しない場合は 0 を返し、expr または pat が NULL の場合もこの関数は NULL を返します。返される値の位置は 1 から始まります。
posは式exprの何番目の文字から検索を開始するかを示します。デフォルトは1です。occurrenceはexpr内でpatが何回目に現れる位置を示します。デフォルトは1です。return_optionは返される値のタイプを示します。デフォルトは0です。値が
0の場合、REGEXP_INSTR()はマッチした最初の文字の位置を返します。値が
1の場合、REGEXP_INSTR()はマッチした最後の文字の位置を返します。
match_typeはマッチングルールを示します。マッチングルールの詳細については、REGEXP_LIKEを参照してください。
例
obclient> SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean');
+-----------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean') |
+-----------------------------------------------+
| 1 |
+-----------------------------------------------+
1 row in set
obclient> SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean',2);
+-------------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean',2) |
+-------------------------------------------------+
| 12 |
+-------------------------------------------------+
1 row in set
obclient> SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2);
+---------------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2) |
+---------------------------------------------------+
| 12 |
+---------------------------------------------------+
1 row in set
obclient> SELECT REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2,1);
+-----------------------------------------------------+
| REGEXP_INSTR('ocean base oceanbase', 'ocean',1,2,1) |
+-----------------------------------------------------+
| 17 |
+-----------------------------------------------------+
1 row in set