Fungsi string digunakan untuk memproses string seperti konversi huruf besar/kecil, penghapusan spasi, dan ekstraksi substring. Topik ini menjelaskan sintaksis fungsi string serta memberikan contoh penggunaannya dalam AnalyticDB for MySQL.
ASCII: Mengembalikan nilai ASCII dari karakter atau karakter paling kiri dari sebuah string.
BIN: Mengembalikan string biner dari integer.
BIT_LENGTH: Mengembalikan panjang string dalam bit.
CHAR: Mengembalikan string yang terdiri dari nilai ASCII dari integer.
CHAR_LENGTH atau CHARACTER_LENGTH: Mengembalikan panjang string dalam karakter.
CONCAT: Menggabungkan string.
CONCAT_WS: Menggabungkan string dengan pemisah.
ELT: Mengembalikan string berdasarkan posisi tertentu.
ENCRYPT: Mengenkripsi string.
EXPORT_SET: Mengonversi integer menjadi string berdasarkan nilai bit.
FIELD: Mengembalikan posisi indeks dari string dalam daftar string.
FIND_IN_SET: Mengembalikan posisi string dalam daftar string yang dipisahkan koma.
FORMAT: Memformat angka dan mengembalikan string.
FROM_BASE64: Mendekode string yang dikodekan Base64.
FROM_UTF8: Mendekode string yang dikodekan UTF-8.
HEX: Mengonversi integer atau string menjadi string heksadesimal.
INSTR: Mengembalikan posisi kemunculan pertama dari substring dalam string.
LEFT: Mengembalikan sejumlah karakter paling kiri dari string.
LENGTH atau OCTET_LENGTH: Mengembalikan panjang string.
LIKE: Melakukan pencocokan pola sederhana.
LOCATE: Mengembalikan posisi kemunculan pertama dari string dalam string lain.
LOWER atau LCASE: Mengonversi string menjadi huruf kecil.
LPAD: Mengembalikan string yang diisi dengan string lain di sebelah kiri.
LTRIM: Menghapus spasi di awal string.
MAKE_SET: Mengembalikan set string yang dipisahkan koma.
MID: Mengembalikan substring dengan panjang tertentu dari posisi tertentu. Fungsi ini setara dengan SUBSTR atau SUBSTRING.
OCT: Mengembalikan string oktal dari integer.
ORD: Mengembalikan kode karakter paling kiri dari string jika karakter tersebut adalah karakter multibyte.
POSITION: Mengembalikan posisi kemunculan pertama dari substring dalam string.
REPEAT: Mengembalikan string yang diulang sejumlah kali tertentu.
REPLACE: Mengganti karakter tertentu dalam string dengan string lain.
REVERSE: Membalikkan urutan karakter dalam string.
RIGHT: Mengembalikan sejumlah karakter paling kanan dari string.
RLIKE atau REGEXP: Melakukan pencocokan pola string terhadap ekspresi reguler.
RPAD: Mengembalikan string yang diisi dengan string lain di sebelah kanan.
RTRIM: Menghapus spasi di akhir string.
SPACE: Mengembalikan string yang terdiri dari sejumlah spasi tertentu.
SPLIT: Membagi string dengan pemisah dan mengembalikan array.
SPLIT_PART: Membagi string dengan pemisah dan mengembalikan substring tertentu dalam array.
SPLIT_TO_MAP: Membagi string menggunakan
entryDelimiterdankeyValueDelimiterdan mengembalikanmap.STRCMP: Mengembalikan 0, 1, atau -1 berdasarkan hasil perbandingan dua string.
SUBSTR atau SUBSTRING: Mengembalikan substring dengan panjang tertentu dari posisi tertentu dalam string.
SUBSTRING_INDEX: Mengembalikan substring sebelum atau sesudah kemunculan ke-count dari pemisah dalam string.
TO_BASE64: Mengembalikan string yang dikodekan Base64.
TO_UTF8: Mengembalikan string yang dikodekan UTF-8.
TRIM: Menghapus spasi di awal dan akhir string.
UPPER atau UCASE: Mengonversi string menjadi huruf besar.
UNHEX: Menafsirkan setiap pasangan digit heksadesimal dalam argumen sebagai byte dan mengonversinya menjadi karakter.
ASCII
ascii(str)Deskripsi: Fungsi ini mengembalikan nilai desimal ASCII dari karakter
stratau karakter paling kiri dari stringstr.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
Pernyataan sampel:
SELECT ascii('2');Hasil sampel:
+------------+ | ascii('2') | +------------+ | 50 | +------------+Pernyataan sampel:
SELECT ascii('dx');Hasil sampel:
+-------------+ | ascii('dx') | +-------------+ | 100 | +-------------+
BIN
bin(N)Deskripsi: Fungsi ini mengembalikan string biner dari
N.Jika
Nadalahnull, makaNULLakan dikembalikan.Tipe data nilai input: BIGINT.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT bin(12);Hasil sampel:
+---------+ | bin(12) | +---------+ | 1100 | +---------+
BIT_LENGTH
bit_length(str)Deskripsi: Fungsi ini mengembalikan panjang string
strdalam satuan bit.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
Pernyataan sampel:
SELECT bit_length('text');Hasil sampel:
+--------------------+ | bit_length('text') | +--------------------+ | 32 | +--------------------+Pernyataan sampel:
SELECT bit_length('China');Hasil sampel:
+---------------------+ | bit_length('China') | +---------------------+ | 40 | +---------------------+
CHAR
char(N1, N2, ...)Deskripsi: Fungsi ini mengembalikan string berdasarkan nilai ASCII desimal dari integer yang ditentukan.
Tipe data nilai input: BIGINT.
Tipe data nilai kembali: VARBINARY.
Contoh:
SELECT char(97,110,97,108,121,116,105,99,100,98);Hasil sampel:
+-------------------------------------------+ | char(97,110,97,108,121,116,105,99,100,98) | +-------------------------------------------+ | analyticdb | +-------------------------------------------+
CHAR_LENGTH atau CHARACTER_LENGTH
char_length(str)
character_length(str)Deskripsi: Fungsi ini mengembalikan panjang string
str, diukur dalam karakter.Panjang karakter Cina adalah
1.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
Pernyataan sampel:
SELECT char_length('China');Hasil sampel:
+----------------------+ | char_length('China') | +----------------------+ | 5 | +----------------------+Pernyataan sampel:
SELECT char_length('abc');Hasil sampel:
+--------------------+ | char_length('abc') | +--------------------+ | 3 | +--------------------+
CONCAT
concat(str 1, …, str n)Deskripsi: Fungsi ini menggabungkan string. Jika argumen adalah
null, nilainullakan dikembalikan.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan sampel:
SELECT concat('aliyun', ', ', 'analyticdb');Hasil sampel:
+--------------------------------------+ | concat('aliyun', ', ', 'analyticdb') | +--------------------------------------+ | aliyun, analyticdb | +--------------------------------------+Pernyataan sampel:
SELECT concat('abc',null,'def');Hasil sampel:
+--------------------------+ | concat('abc',null,'def') | +--------------------------+ | NULL | +--------------------------+
CONCAT_WS
concat_ws(separator, str 1, …, str n)Deskripsi: Fungsi ini menggabungkan string dengan pemisah tertentu. Argumen
separatormenentukan pemisah untuk argumen lainnya. Stringnullakan diabaikan.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan sampel:
SELECT concat_ws(',', 'Nama Depan', 'Nama Tengah', 'Nama Belakang')AS result;Hasil sampel:
+----------------------------------+ | result | +----------------------------------+ | Nama Depan,Nama Tengah,Nama Belakang | +----------------------------------+Pernyataan sampel:
SELECT concat_ws(',','Nama Depan',NULL,'Nama Belakang')AS result;Hasil sampel:
+----------------------+ | result | +----------------------+ | Nama Depan,Nama Belakang | +----------------------+
ELT
elt(N, str 1, ...,str n);Deskripsi: Fungsi ini mengembalikan string ke-
N.Jika
Nkurang dari 1 atau lebih besar dari jumlah argumen string, nilainullakan dikembalikan.Tipe data nilai input: BIGINT untuk argumen
N, dan VARCHAR untuk argumenstr.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT elt(4, 'Aa', 'Bb', 'Cc', 'Dd');Hasil sampel:
+--------------------------------+ | elt(4, 'Aa', 'Bb', 'Cc', 'Dd') | +--------------------------------+ | Dd | +--------------------------------+
ENCRYPT
encrypt(x, y);Deskripsi: Fungsi ini mengenkripsi argumen
xmenggunakanysebagai nilai salt.Tipe data nilai input: VARBINARY untuk argumen
x, VARCHAR untuk argumeny.Tipe data nilai kembali: VARBINARY.
Contoh:
SELECT encrypt('abdABC123','key');Hasil sampel:
+--------------------------------------------------------+ | encrypt('abdABC123','key') | +--------------------------------------------------------+ | 0x6B657A617A6D63496F2E614377 | +--------------------------------------------------------+
EXPORT_SET
export_set(bits, onstr, offstr [, separator[,number_of_bits]]);Deskripsi: Fungsi ini mengonversi integer dari argumen
bitsmenjadi nilai biner. Penjelasan argumen:onstr: Nilai pengganti untuk 1 dalam nilai biner.offstr: Nilai pengganti untuk 0 dalam nilai biner.separator: Pemisah antara nilai-nilai yang dikembalikan.number_of_bits: Jumlah bit dalam nilai biner yang diperiksa sistem dari kanan ke kiri. Jika nilainumber_of_bitslebih besar dari 64 atau -1, maka 64 bit akan dikembalikan.
Tipe data nilai input: BIGINT untuk argumen
bitsdannumber_of_bits. VARCHAR untuk argumenonstr,offstr, danseparator.Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan berikut mengonversi 5 menjadi nilai biner dan mengembalikan dua bit paling kanan dari nilai biner dengan mengganti 1 menggunakan
adan 0 menggunakanb, serta memisahkan nilai-nilai yang dikembalikan dengan koma (,).SELECT export_set(5,'a','b',',',2);Hasil sampel:
+-----------------------------+ | export_set(5,'a','b',',',2) | +-----------------------------+ | a,b | +-----------------------------+Pernyataan berikut mengonversi 6 menjadi nilai biner dan mengembalikan 10 bit paling kanan dari nilai biner dengan menggunakan
1untuk 1 dan0untuk 0 dalam nilai biner, serta memisahkan nilai-nilai yang dikembalikan dengan koma (,).SELECT export_set(6,'1','0',',',10);Hasil sampel:
+------------------------------+ | 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);Deskripsi: Fungsi ini mengembalikan posisi indeks dari nilai
strdalam daftar string yang ditentukan oleh beberapa argumen.Jika nilaistrtidak ditemukan dalam daftar string,0dikembalikan.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');Hasil sampel:
sq+-------------------------------------------+ | FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff') | +-------------------------------------------+ | 2 | +-------------------------------------------+
FIND_IN_SET
find_in_set(str, strlist) Deskripsi: Fungsi ini mengembalikan posisi nilai
strdalam daftar string yang dipisahkan koma, seperti yang ditentukan oleh argumenstrlist.Jika nilai
strtidak ditemukan dalamstrlistatau jikastrlistadalah daftar kosong, nilai0akan dikembalikan.Jika
strataustrlistbernilainull, hasil yang dikembalikan adalahnull.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
SELECT find_in_set('b','a,b,c,d');Hasil sampel:
+----------------------------+ | find_in_set('b','a,b,c,d') | +----------------------------+ | 2 | +----------------------------+
FORMAT
format(X, D)Fungsi ini memformat angka
Xke dalam format#,###,###.##, dibulatkan hinggaDtempat desimal, dan mengembalikan hasilnya sebagai string.Jika
Dbernilai0, hasilnya tidak mencakup titik desimal atau bagian pecahan.Tipe data nilai input: DOUBLE untuk argumen
X; BIGINT untuk argumenD.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT format(12332.123456, 4)AS result1, format(12332.1,4)AS result2, format(12332.2,0)AS result3;Hasil sampel:
+-------------+-------------+---------+ | result1 | result2 | result3 | +-------------+-------------+---------+ | 12,332.1235 | 12,332.1000 | 12,332 | +-------------+-------------+---------+
FROM_BASE64
from_base64(x)Deskripsi: Fungsi ini mendekode string
xyang dikodekan dalam Base64 dan mengembalikan hasilnya.Tipe data nilai input: VARBINARY atau VARCHAR.
Tipe data nilai kembali: VARBINARY.
CatatanAnda dapat menggunakan metode berikut untuk mengonversi hasil bertipe VARBINARY menjadi nilai VARCHAR:
Untuk kluster AnalyticDB for MySQL versi V3.1.4 atau lebih baru, gunakan fungsi
CAST AS VARCHAR. Untuk informasi lebih lanjut, lihat fungsi CAST.Untuk kluster AnalyticDB for MySQL sebelum versi V3.1.4, gunakan fungsi
FROM_UTF8. Untuk informasi lebih lanjut, lihat bagian "FROM_UTF8" dari topik ini.
Contoh:
Pernyataan berikut mendekode string bertipe VARCHAR yang dikodekan dalam Base64.
SELECT from_base64('Q2hpbmE=');Hasil sampel:
+--------------------------------------------------+ | from_base64('Q2hpbmE=') | +--------------------------------------------------+ | 0x4368696E61 | +--------------------------------------------------+CatatanNilai yang dikembalikan di atas bertipe VARBINARY. Jika Anda ingin sistem mengembalikan nilai bertipe VARCHAR, jalankan pernyataan berikut:
SELECT cast(from_base64('Q2hpbmE=') AS varchar);Hasil sampel:
+------------------------------------------+ | cast(from_base64('Q2hpbmE=') AS varchar) | +------------------------------------------+ | China | +------------------------------------------+Pernyataan berikut mendekode string bertipe VARBINARY yang dikodekan dalam Base64.
SELECT from_base64(cast(to_base64('China') AS varbinary));Hasil sampel:
+--------------------------------------------------------------------------------------------------------+ | from_base64(cast(to_base64('China') AS varbinary)) | +--------------------------------------------------------------------------------------------------------+ | 0x4368696E61 | +--------------------------------------------------------------------------------------------------------+
FROM_UTF8
from_utf8(x)
from_utf8(x, y)Deskripsi:
from_utf8(x): Mendekode nilaixyang dikodekan UTF-8 dan mengembalikan hasilnya.from_utf8(x, y): Mendekode nilaixyang tidak dikodekan UTF-8 dan mengganti karakter tidak valid dalam hasil dekode dengan karakter tertentu.Catatanybersifat opsional. Jika Anda tidak menentukany, karakter�akan dikembalikan untuk setiap karakter tidak valid dalam hasil dekode.Nilai
ydapat berupa karakter, seperti tanda pagar (#), atau nilai ASCII dari sebuah karakter, seperti35.
Tipe data nilai input: VARBINARY untuk argumen
x. VARCHAR atau BIGINT untuk argumeny.Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan berikut mendekode nilai yang dikodekan UTF-8.
SELECT from_utf8(to_utf8('hello'));Hasil sampel:
+-----------------------------+ | from_utf8(to_utf8('hello')) | +-----------------------------+ | hello | +-----------------------------+Pernyataan berikut mendekode nilai yang tidak dikodekan UTF-8.
SELECT from_utf8(unhex('58BF'));Hasil sampel:
+--------------------------+ | from_utf8(unhex('58BF')) | +--------------------------+ | X� | +--------------------------+Pernyataan berikut mendekode nilai yang tidak dikodekan UTF-8 dan mengganti setiap karakter tidak valid dalam hasil dekode dengan tanda pagar (
#).SELECT from_utf8(unhex('58BF'), '#');Hasil sampel:
+-------------------------------+ | from_utf8(unhex('58BF'), '#') | +-------------------------------+ | X# | +-------------------------------+Pernyataan berikut mendekode nilai yang tidak dikodekan UTF-8 dan mengganti setiap karakter tidak valid dalam hasil dekode dengan karakter yang nilai ASCII-nya adalah 35.
SELECT from_utf8(unhex('58BF'), '35');Hasil sampel:
+-------------------------------+ | from_utf8(unhex('58BF'), '35') | +-------------------------------+ | X# | +-------------------------------+
HEX
hex(x)Deskripsi: Fungsi ini mengonversi nilai
xmenjadi string heksadesimal.Tipe data nilai input: BIGINT atau VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan berikut mengonversi nilai bertipe BIGINT.
SELECT hex(16);Hasil sampel:
+---------+ | hex(16) | +---------+ | 10 | +---------+Pernyataan berikut mengonversi nilai bertipe VARCHAR.
SELECT hex('16');Hasil sampel:
+-----------+ | hex('16') | +-----------+ | 3136 | +-----------+
INSTR
instr(str, substr)Deskripsi: Fungsi ini mengembalikan posisi kemunculan pertama dari substring
substrdalam stringstr.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
SELECT instr('foobarbar', 'bar');Hasil sampel:
+---------------------------+ | instr('foobarbar', 'bar') | +---------------------------+ | 4 | +---------------------------+
LEFT
LEFT(str, len)Deskripsi: Fungsi ini mengembalikan sejumlah karakter paling kiri dari string
str, dengan jumlah ditentukan oleh argumenlen.Jika
strataulenbernilainull, hasil yang dikembalikan adalahnull.Tipe data nilai input: VARCHAR untuk argumen
strdan BIGINT untuk argumenlen.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT LEFT('foobarbar', 5);Hasil sampel:
+----------------------+ | LEFT('foobarbar', 5) | +----------------------+ | fooba | +----------------------+
LENGTH atau OCTET_LENGTH
length(str)
octet_length(str)Deskripsi: Fungsi ini mengembalikan panjang string
str.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
SELECT length('aliyun');Hasil sampel:
+------------------+ | length('aliyun') | +------------------+ | 6 | +------------------+
LIKE
expression [NOT] LIKE pattern [ESCAPE 'escape_char']Deskripsi: Fungsi ini mencocokkan pola dari string
expressiondenganpattern. Jika string sesuai dengan pola, nilai1dikembalikan. Jika tidak, nilai0dikembalikan.Deskripsi argumen:patterndapat berisi wildcard berikut:%: mencocokkan string dengan panjang berapa pun._: mencocokkan satu karakter.
escape_char: meloloskan tanda persen (%) dan garis bawah (_) dalam nilaipattern, sehingga tanda persen (%) dan garis bawah (_) yang mengikuti karakter pelolos tidak berfungsi sebagai wildcard.
Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
Pernyataan sampel:
SELECT 'David!' LIKE 'David_' AS result1, 'David!' NOT LIKE 'David_' AS result2, 'David!' LIKE '%D%v%' AS result3;Hasil sampel:
+---------+---------+---------+ | result1 | result2 | result3 | +---------+---------+---------+ | 1 | 0 | 1 | +---------+---------+---------+Pernyataan sampel:
SELECT 'David_' LIKE 'David|_' ESCAPE '|';Hasil sampel:
+----------------------------------+ | David_' LIKE 'David|_' ESCAPE '| | +----------------------------------+ | 1 | +----------------------------------+
LOCATE
locate(substr, str)
locate(substr, str, pos)Deskripsi: Fungsi ini mengembalikan posisi kemunculan pertama dari substring
substrdalam stringstr, atau mengembalikan posisi kemunculan pertama dari substringsubstrdalam stringstr, dimulai dari posisipos.Jika substring
substrtidak ditemukan dalam stringstr, nilai0dikembalikan.Jika
substrataustrbernilainull, hasilnya adalahnull.Tipe data nilai input: VARCHAR untuk argumen
strdansubstr; BIGINT untuk argumenpos.Tipe data nilai kembali: BIGINT.
Contoh:
Pernyataan sampel:
SELECT locate('bar', 'foobarbar');Hasil sampel:
+----------------------------+ | locate('bar', 'foobarbar') | +----------------------------+ | 4 | +----------------------------+Pernyataan sampel:
SELECT locate('bar', 'foobarbar', 7);Hasil sampel:
+-------------------------------+ | locate('bar', 'foobarbar', 7) | +-------------------------------+ | 7 | +-------------------------------+
LOWER atau LCASE
lower(str)
lcase(str)Deskripsi: Fungsi ini mengonversi huruf dalam string
strmenjadi huruf kecil.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT lower('Aliyun');Hasil sampel:
+-----------------+ | lower('Aliyun') | +-----------------+ | aliyun | +-----------------+
LPAD
lpad(str, len, padstr)Deskripsi: Fungsi ini mengembalikan string
stryang diisi dengan stringpadstrdi sebelah kiri hingga mencapai panjanglenkarakter.Jika panjang string
strlebih besar darilenkarakter, hasilnya akan dipotong menjadilenkarakter.Tipe data nilai input: VARCHAR untuk argumen
strdanpadstr, serta BIGINT untuk argumenlen.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT lpad('Aliyun',9,'#');Hasil sampel:
+----------------------+ | lpad('Aliyun',9,'#') | +----------------------+ | ###Aliyun | +----------------------+
LTRIM
ltrim(str)Deskripsi: Fungsi ini menghapus spasi di awal string
str.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT ltrim(' abc');Hasil sampel:
+----------------+ | ltrim(' abc') | +----------------+ | abc | +----------------+
MAKE_SET
make_set(bits, str 1, str 2,...);Deskripsi: Fungsi ini mengembalikan nilai set berupa string yang terdiri dari substring, dipisahkan oleh pemisah. Nilai set mencakup string dengan bit yang sesuai dalam set bit.
String
str1sesuai dengan bit0. Stringstr2sesuai dengan bit1. Sisanya dapat disimpulkan secara analog. Nilainulldalam stringstr1,str2, dan string lainnya tidak dimasukkan ke dalam hasil.Tipe data nilai input: BIGINT untuk argumen
bits, VARCHAR untuk argumenstr.Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan sampel:
SELECT make_set(5,'hello','nice','world');Hasil sampel:
+------------------------------------+ | make_set(5,'hello','nice','world') | +------------------------------------+ | hello,world | +------------------------------------+Pernyataan sampel:
SELECT make_set(1 | 4,'hello','nice',NULL,'world')AS result;Hasil sampel:
+--------+ | result | +--------+ | hello | +--------+
MID
mid(str, pos, len)Deskripsi: Fungsi ini mengembalikan substring sepanjang
lenkarakter dari stringstr, dimulai dari posisipos. Fungsi ini setara dengan SUBSTR atau SUBSTRING.Tipe data nilai input: VARCHAR untuk argumen
str; BIGINT untuk argumenposdanlen.Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan sampel:
SELECT mid('Quadratically',5,6);Hasil sampel:
+--------------------------+ | mid('Quadratically',5,6) | +--------------------------+ | ratica | +--------------------------+Pernyataan sampel:
SELECT mid('Sakila', -5, 3);Hasil sampel:
+----------------------+ | mid('Sakila', -5, 3) | +----------------------+ | aki | +----------------------+
OCT
oct(N)Deskripsi: Fungsi ini mengembalikan string oktal dari integer
N.Jika
Nadalahnull, maka nilainullakan dikembalikan.Tipe data nilai input: BIGINT.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT oct(12);Hasil sampel:
+---------+ | oct(12) | +---------+ | 14 | +---------+
ORD
ord(x)Deskripsi: Fungsi ini mengembalikan kode karakter paling kiri dari string
x, jika karakter tersebut merupakan karakter multibyte.Tipe data nilai input: VARBINARY atau VARCHAR.
Tipe data nilai kembali: LONG.
Contoh:
Pernyataan berikut mengembalikan kode karakter paling kiri dari nilai bertipe VARCHAR.
SELECT ord('China');Hasil sampel:
+--------------+ | ord('China') | +--------------+ | 67 | +--------------+Pernyataan berikut mengembalikan kode karakter paling kiri dari nilai bertipe VARBINARY.
SELECT ord(cast('China' AS varbinary));Hasil sampel:
+---------------------------------+ | ord(cast('China' AS varbinary)) | +---------------------------------+ | 67 | +---------------------------------+
POSITION
position(substr IN str);Deskripsi: Fungsi ini mengembalikan posisi kemunculan pertama dari substring
substrdalam stringstr, dimulai dari posisi1. Jika substring tidak ditemukan, nilai0akan dikembalikan.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
SELECT position('bar' in 'foobarbar');Hasil sampel:
+--------------------------------+ | position('bar' in 'foobarbar') | +--------------------------------+ | 4 | +--------------------------------+
REPEAT
repeat(str, count);Deskripsi: Fungsi ini mengembalikan string yang terdiri dari pengulangan string
strsebanyak jumlah yang ditentukan olehcount.Jika nilai
countkurang dari 1, string kosong akan dikembalikan.Jika
strataucountbernilainull, hasilnya adalahnull.Tipe data nilai input: VARCHAR untuk argumen
str, BIGINT untuk argumencount.Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan sampel:
SELECT repeat('a', 3);Hasil sampel:
+----------------+ | repeat('a', 3) | +----------------+ | aaa | +----------------+Pernyataan sampel:
SELECT repeat('abc', null);Hasil sampel:
+---------------------+ | repeat('abc', null) | +---------------------+ | NULL | +---------------------+Pernyataan sampel:
SELECT repeat(null, 3);Hasil sampel:
+-----------------+ | repeat(null, 3) | +-----------------+ | NULL | +-----------------+
REPLACE
replace(str, from_str, to_str);Deskripsi: Fungsi ini mengganti semua kemunculan string
from_strdalam stringstrdengan stringto_str.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT replace('WWW.aliyun.com', 'W', 'w');Hasil sampel:
+-------------------------------------+ | replace('WWW.aliyun.com', 'W', 'w') | +-------------------------------------+ | www.aliyun.com | +-------------------------------------+
REVERSE
reverse(str);Deskripsi: Fungsi ini mengembalikan string
strdengan urutan karakter yang dibalik.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT reverse('123456');Hasil sampel:
+-------------------+ | reverse('123456') | +-------------------+ | 654321 | +-------------------+
RIGHT
RIGHT(str, len);Fungsi ini mengembalikan
lenkarakter paling kanan dari stringstr.Jika
strataulenbernilainull, hasil yang dikembalikan adalahnull.Tipe data nilai input: VARCHAR untuk argumen
str, dan BIGINT untuk argumenlen.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT RIGHT('abc',3);Hasil sampel:
+----------------+ | RIGHT('abc',3) | +----------------+ | abc | +----------------+
RLIKE atau REGEXP
expression RLIKE pattern;
expression REGEXP pattern;Deskripsi: Fungsi ini memeriksa kecocokan pola dari string
expressionterhadap ekspresi reguler yang didefinisikan olehpattern. Jika string cocok dengan ekspresi reguler, nilai1dikembalikan. Jika tidak, nilai0dikembalikan.Jika
expressionataupatternbernilainull, hasilnya adalahnull.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BOOLEAN.
Contoh:
Pernyataan sampel:
SELECT 'Michael!' REGEXP '.*';Hasil sampel:
+----------------------+ | Michael!' REGEXP '.* | +----------------------+ | 1 | +----------------------+Pernyataan sampel:
SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';Hasil sampel:
+-------------------------------------+ | new*\n*line' REGEXP 'new\\*.\\*line | +-------------------------------------+ | 0 | +-------------------------------------+Pernyataan sampel:
SELECT 'c' REGEXP '^[a-d]';Hasil sampel:
+-------------------+ | c' REGEXP '^[a-d] | +-------------------+ | 1 | +-------------------+
RPAD
rpad(str, len, padstr)Deskripsi: Fungsi ini mengembalikan string
stryang diisi dengan stringpadstrdi sebelah kanan hingga mencapai panjanglenkarakter.Jika panjang string
strlebih besar darilen, hasilnya akan dipotong menjadilenkarakter.Tipe data nilai input: VARCHAR untuk argumen
strdanpadstr, serta BIGINT untuk argumenlen.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT rpad('Aliyun',9,'#');Hasil sampel:
+----------------------+ | rpad('Aliyun',9,'#') | +----------------------+ | Aliyun### | +----------------------+
RTRIM
rtrim(str)Deskripsi: Fungsi ini menghapus spasi di akhir string
str.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT rtrim('barbar ');Hasil sampel:
+--------------------+ | rtrim('barbar ') | +--------------------+ | barbar | +--------------------+
SPACE
space(N);Deskripsi: Fungsi ini mengembalikan string yang terdiri dari sejumlah spasi tertentu.
CatatanDisarankan untuk menggunakan fungsi ini bersama dengan fungsi
contact()guna mempermudah tampilan hasil.Tipe data nilai input: BIGINT.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT concat("#", space(6), "#");Hasil sampel:
+----------------------------+ | concat("#", space(6), "#") | +----------------------------+ | # # | +----------------------------+
SPLIT
split(string, delimiter)Deskripsi: Fungsi ini membagi
stringmenggunakandelimiterdan mengembalikan array.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: ARRAY<varchar>.
Contoh:
SELECT split('1#2#3', '#'), split('#1#2#3#', '#'), split('123', '#');Hasil sampel:
+---------------------+-----------------------+-------------------+ | split('1#2#3', '#') | split('#1#2#3#', '#') | split('123', '#') | +---------------------+-----------------------+-------------------+ | ["1","2","3"] | ["","1","2","3",""] | ["123"] | +---------------------+-----------------------+-------------------+
SPLIT_PART
split_part(string, delimiter, index)Deskripsi: Fungsi ini membagi
stringmenggunakandelimiterdan mengembalikan substring pada indeks larik sesuai dengan nilaiindex. Nilaiindexdimulai dari 1. Jika nilai indeks melebihi jumlah substring, fungsi akan mengembalikan NULL.Tipe data nilai input: VARCHAR untuk argumen
stringdandelimiter, serta BIGINT untuk argumenindex.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT split_part('A#B#C', '#', 2), split_part('A#B#C', '#', 4);Hasil sampel:
+-----------------------------+-----------------------------+ | split_part('A#B#C', '#', 2) | split_part('A#B#C', '#', 4) | +-----------------------------+-----------------------------+ | B | NULL | +-----------------------------+-----------------------------+
SPLIT_TO_MAP
split_to_map(string, entryDelimiter, keyValueDelimiter)Deskripsi: Fungsi ini membagi string menggunakan
entryDelimiterdankeyValueDelimiter, lalu mengembalikanmap. String dibagi berdasarkanentryDelimitermenjadi pasangankey-value, kemudian setiap pasangankey-valuedibagi menggunakankeyValueDelimitermenjadikeysdanvalues.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: MAP<varchar, varchar>.
Contoh:
SELECT split_to_map('k1:v1,k2:v2', ',', ':'),split_to_map('', ',', ':');Hasil sampel:
+---------------------------------------+----------------------------+ | split_to_map('k1:v1,k2:v2', ',', ':') | split_to_map('', ',', ':') | +---------------------------------------+----------------------------+ | {"k1":"v1","k2":"v2"} | {} | +---------------------------------------+----------------------------+
STRCMP
strcmp(str 1, str 2);Deskripsi: Fungsi ini membandingkan string
str 1danstr 2. Jika kedua string identik, nilai0dikembalikan. Jika nilaistr 1lebih kecil dari nilaistr 2, nilai-1dikembalikan. Sebaliknya, nilai1dikembalikan.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: BIGINT.
Contoh:
SELECT strcmp('text', 'text2');Hasil sampel:
+-------------------------+ | strcmp('text', 'text2') | +-------------------------+ | -1 | +-------------------------+
SUBSTR atau 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)Deskripsi:
SUBSTRING(varchar str, bigint pos)atauSUBSTRING(varchar str FROM pos): mengembalikan substring yang dimulai dari posisiposhingga akhir string. Jika nilaiposkurang dari 0, substring dimulai dari posisi yang berjarak pos karakter dari akhir string.SUBSTRING(varchar str, bigint pos, bigint len)atauSUBSTRING(varchar str FROM pos FOR len): mengembalikan substring yang berisilenkarakter dari string, dimulai dari posisipos. Jika nilaiposkurang dari 0, substring dimulai dari posisi yang berjarak pos karakter dari akhir string.
Tipe Data Nilai Input: VARCHAR untuk argumen
str, BIGINT untuk argumenposdanlen.Tipe Data Nilai Kembali: VARCHAR.
Contoh:
Pernyataan Sampel:
SELECT substr('helloworld', 6);Hasil Sampel:
+-------------------------+ | substr('helloworld', 6) | +-------------------------+ | world | +-------------------------+Pernyataan Sampel:
SELECT substr('helloworld' FROM 6);Hasil Sampel:
+-----------------------------+ | substr('helloworld' FROM 6) | +-----------------------------+ | world | +-----------------------------+Pernyataan Sampel:
SELECT substr('helloworld', 6, 3);Hasil Sampel:
+----------------------------+ | substr('helloworld', 6, 3) | +----------------------------+ | wor | +----------------------------+Pernyataan Sampel:
SELECT substr('helloworld' from 6 for 3);Hasil Sampel:
+-----------------------------------+ | substr('helloworld' FROM 6 FOR 3) | +-----------------------------------+ | wor | +-----------------------------------+
SUBSTRING_INDEX
substring_index(str, delim, count)Deskripsi: Fungsi ini mengembalikan substring yang muncul sebelum atau sesudah kemunculan ke-count dari pemisah
delimdalam stringstr.Jika nilai count lebih besar dari 0, fungsi ini mengembalikan semua karakter di sebelah kiri kemunculan ke-
countdari pemisahdelim.Jika nilai count kurang dari 0, fungsi ini mengembalikan semua karakter di sebelah kanan kemunculan ke-
countdari pemisahdelim.Fungsi
SUBSTRING_INDEXmelakukan pencocokan sensitif huruf besar/kecil saat mencari pemisahdelim.Tipe data nilai input: VARCHAR untuk argumen
strdandelim. BIGINT untuk argumencount.Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT substring_index('www.aliyun.com', '.', 2);Hasil sampel:
+-------------------------------------------+ | substring_index('www.aliyun.com', '.', 2) | +-------------------------------------------+ | www.aliyun | +-------------------------------------------+
TO_BASE64
to_base64(x)Deskripsi: Fungsi ini mengembalikan string
xyang dikodekan dalam format Base64.Tipe data nilai input: VARBINARY atau VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan berikut mengembalikan string yang dikodekan Base64 dari nilai bertipe VARCHAR.
SELECT to_base64('China');Hasil sampel:
+--------------------+ | to_base64('China') | +--------------------+ | Q2hpbmE= | +--------------------+Pernyataan berikut mengembalikan string yang dikodekan Base64 dari nilai bertipe VARBINARY.
SELECT to_base64(cast('China' AS varbinary));Hasil sampel:
+---------------------------------------+ | to_base64(cast('China' AS varbinary)) | +---------------------------------------+ | Q2hpbmE= | +---------------------------------------+
TO_UTF8
to_utf8(x)Deskripsi: Fungsi ini mengembalikan string
xyang dikodekan dalam format UTF-8.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT from_utf8(to_utf8('China'));Hasil sampel:
+-----------------------------+ | from_utf8(to_utf8('China')) | +-----------------------------+ | China | +-----------------------------+
TRIM
trim([remstr FROM] str)
trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)Deskripsi: Fungsi ini menghapus spasi di awal dan akhir atau karakter dalam string opsional
remstrdari stringstr.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
Pernyataan sampel:
SELECT trim(' bar ');Hasil sampel:
+------------------+ | trim(' bar ') | +------------------+ | bar | +------------------+Pernyataan sampel:
SELECT trim(BOTH 'x' FROM 'xxxbarxxx');Hasil sampel:
+---------------------------------+ | trim(BOTH 'x' FROM 'xxxbarxxx') | +---------------------------------+ | bar | +---------------------------------+Pernyataan sampel:
SELECT trim(LEADING 'x' FROM 'xxxbarxxx');Hasil sampel:
+------------------------------------+ | trim(LEADING 'x' FROM 'xxxbarxxx') | +------------------------------------+ | barxxx | +------------------------------------+Pernyataan sampel:
SELECT trim(TRAILING 'x' from 'xxxbarxxx');Hasil sampel:
+-------------------------------------+ | trim(TRAILING 'x' from 'xxxbarxxx') | +-------------------------------------+ | xxxbar | +-------------------------------------+
UPPER atau UCASE
upper(str)
ucase(str)Deskripsi: Fungsi ini mengonversi huruf dalam string
strmenjadi huruf besar.Tipe data nilai input: VARCHAR.
Tipe data nilai kembali: VARCHAR.
Contoh:
SELECT upper('Aliyun');Hasil sampel:
+-----------------+ | upper('Aliyun') | +-----------------+ | ALIYUN |
UNHEX
unhex(x);Deskripsi: Fungsi ini menafsirkan setiap pasangan digit heksadesimal dalam argumen
xsebagai byte dan mengonversi setiap byte menjadi karakter.Tipe data nilai input: VARBINARY atau VARCHAR.
Tipe data nilai kembali: VARBINARY.
CatatanAnda dapat menggunakan metode berikut untuk mengonversi hasil bertipe VARBINARY menjadi nilai VARCHAR:
Untuk kluster AnalyticDB for MySQL versi V3.1.4 atau lebih baru, gunakan fungsi
CAST AS VARCHAR. Untuk informasi lebih lanjut, lihat fungsi CAST.Untuk kluster AnalyticDB for MySQL sebelum versi V3.1.4, gunakan fungsi
FROM_UTF8. Untuk informasi lebih lanjut, lihat bagian "FROM_UTF8" dari topik ini.
Jika nilai input mengandung digit non-heksadesimal, NULL akan dikembalikan.
Contoh:
Pernyataan berikut mendekode string yang dikodekan Base64 bertipe VARCHAR.
SELECT unhex(hex('China'));Hasil sampel:
+------------------------------------------+ | unhex(hex('China')) | +------------------------------------------+ | China | +------------------------------------------+CatatanNilai yang dikembalikan di atas bertipe VARBINARY. Jika Anda ingin sistem mengembalikan nilai bertipe VARCHAR, jalankan pernyataan berikut:
SELECT cast(unhex(hex('China')) AS varchar);Hasil sampel:
+--------------------------------------+ | cast(unhex(hex('China')) AS varchar) | +--------------------------------------+ | China | +--------------------------------------+Pernyataan berikut mendekode string yang dikodekan Base64 bertipe VARBINARY.
SELECT unhex(cast(hex('China') AS varbinary));Hasil sampel:
+------------------------------------------+ | unhex(cast(hex('China') AS varbinary)) | +------------------------------------------+ | China | +------------------------------------------+