All Products
Search
Document Center

AnalyticDB:Fungsi Biasa

Last Updated:Mar 29, 2026

AnalyticDB for MySQL mendukung fungsi ekspresi reguler berikut untuk pencocokan pola, ekstraksi, dan penggantian dalam kueri SQL.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • Versi mesin minor kluster AnalyticDB for MySQL adalah 3.1.5.10 atau lebih baru.

Catatan

Untuk memeriksa versi mesin minor, lihat Bagaimana cara melihat versi kluster AnalyticDB for MySQL?

REGEXP_INSTR

regexp_instr(source, pattern[, position[, occurrence[, option]]])

Mengembalikan bilangan bulat yang menunjukkan posisi awal atau akhir substring pertama (atau ke-N) dalam source yang sesuai dengan pattern. Mengembalikan 0 jika tidak ditemukan kecocokan.

Parameter

Wajib:

ParameterTipeDeskripsi
sourceVARCHARString yang akan dicari.
patternEkspresi reguler yang digunakan untuk pencocokan.

Opsional:

ParameterTipeDefaultDeskripsi
positionBIGINT1Posisi karakter dalam source tempat pencocokan dimulai.
occurrenceBIGINT1Kecocokan ke berapa yang akan dikembalikan.
optionBIGINT0Mengontrol apakah akan mengembalikan posisi awal kecocokan (0) atau posisi tepat setelah akhir kecocokan (1).

Nilai kembalian

Mengembalikan BIGINT. Mengembalikan 0 jika tidak ditemukan kecocokan.

Contoh

Mengembalikan posisi awal kecocokan pertama

SELECT REGEXP_INSTR('dog cat dog', 'dog') as res;
+-----+
| res |
+-----+
|   1 |
+-----+

Mengembalikan posisi awal kecocokan kedua

SELECT REGEXP_INSTR('dog cat dog', 'dog', 1, 2) as res;
+-----+
| res |
+-----+
|   9 |
+-----+

Mengembalikan posisi setelah akhir kecocokan pertama

SELECT REGEXP_INSTR('dog cat dog', 'dog', 1, 1, 1) as res;
+-----+
| res |
+-----+
|   4 |
+-----+

REGEXP_MATCHES

regexp_matches(source, pattern[, flag])

Mengembalikan ARRAY(ARRAY(VARCHAR)) dari semua substring dalam source yang sesuai dengan pattern. Mengembalikan array kosong jika tidak ditemukan kecocokan.

  • Tanpa flag g: hanya mengembalikan kecocokan pertama.

  • Dengan flag g: mengembalikan semua kecocokan.

  • Jika pattern berisi capture groups, substring yang cocok dari setiap grup dikembalikan sebagai array bersarang. Jika tidak, kecocokan lengkap dikembalikan.

Catatan

Untuk mendapatkan string yang cocok tunggal alih-alih array, gunakan REGEXP_SUBSTR.

Parameter

Wajib:

ParameterTipeDeskripsi
sourceVARCHARString yang akan dicari.
patternEkspresi reguler yang digunakan untuk pencocokan.

Opsional:

ParameterTipeDeskripsi
flagVARCHARSatu atau beberapa karakter yang mengontrol perilaku pencocokan. Gunakan g untuk mengembalikan semua kecocokan alih-alih hanya yang pertama.

Nilai kembalian

Mengembalikan ARRAY(ARRAY(VARCHAR)). Mengembalikan array kosong jika tidak ditemukan kecocokan.

Contoh

Pencocokan dengan capture groups (hanya kecocokan pertama)

SELECT regexp_matches('foobarbequebaz', '(bar)(beque)');
+---------------------+
| regexp_matches      |
+---------------------+
| [["bar","beque"]]   |

Pencocokan tanpa capture groups

SELECT regexp_matches('foobarbequebaz', 'barbeque');
+---------------------+
| regexp_matches      |
+---------------------+
| [["barbeque"]]      |

Pencocokan semua kemunculan menggunakan flag `g`

SELECT regexp_matches('foobarbequebazilbarfbonk', '(b[^b]+)(b[^b]+)', 'g');
+------------------------------------------+
| regexp_matches                           |
+------------------------------------------+
| [["bar","beque"], ["bazil","barf"]]      |

REGEXP_REPLACE

regexp_replace(source, pattern, replacement[, position[, occurrence]])

Mengganti substring dalam source yang sesuai dengan pattern dengan replacement. Secara default, mengganti semua kecocokan mulai dari karakter pertama. Mengembalikan string asli jika tidak ditemukan kecocokan.

Parameter

Wajib:

ParameterTipeDeskripsi
sourceVARCHARString yang akan dicari.
patternEkspresi reguler yang digunakan untuk pencocokan.
replacementVARCHARString yang akan menggantikan setiap kecocokan.

Opsional:

ParameterTipeDefaultDeskripsi
positionBIGINT1Posisi karakter dalam source tempat pencocokan dimulai.
occurrenceBIGINT0Kecocokan ke berapa yang akan diganti. 0 mengganti semua kecocokan; bilangan bulat positif hanya mengganti kecocokan tersebut.

Nilai kembalian

Mengembalikan VARCHAR. Mengembalikan string asli jika tidak ditemukan kecocokan.

Contoh

Mengganti semua kecocokan

SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X') as res;
+-------+
| res   |
+-------+
| X X X |
+-------+

Mengganti hanya kecocokan ketiga

SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3) as res;
+-----------+
| res       |
+-----------+
| abc def X |
+-----------+

REGEXP_SUBSTR

regexp_substr(source, pattern[, position[, occurrence]])

Mengembalikan substring dalam source yang sesuai dengan pattern. Mengembalikan NULL jika tidak ditemukan kecocokan.

Parameter

Wajib:

ParameterTipeDeskripsi
sourceVARCHARString yang akan dicari.
patternEkspresi reguler yang digunakan untuk pencocokan.

Opsional:

ParameterTipeDefaultDeskripsi
positionBIGINT1Posisi karakter dalam source tempat pencocokan dimulai.
occurrenceBIGINT1Kecocokan ke berapa yang akan dikembalikan.

Nilai kembalian

Mengembalikan VARCHAR. Mengembalikan NULL jika tidak ditemukan kecocokan.

Contoh

Mengembalikan kecocokan ketiga

SELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+', 1, 3) as res;
+------+
| res  |
+------+
| ghi  |
+------+

Mengembalikan kecocokan pertama (perilaku default)

SELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+') as res;
+------+
| res  |
+------+
| abc  |
+------+