All Products
Search
Document Center

Lindorm:Fungsi string

Last Updated:Mar 29, 2026

Lindorm SQL mendukung berbagai fungsi string untuk memanipulasi, mencari, dan melakukan penghashan nilai string. Semua fungsi yang dijelaskan pada halaman ini memerlukan LindormTable versi 2.5.1.1 atau lebih baru.

Untuk memeriksa versi saat ini atau melakukan upgrade, lihat Catatan rilis LindormTable dan Upgrade versi mesin minor instans Lindorm.

Fungsi string yang didukung

KategoriFungsiDeskripsi
Manipulasi umum

CONCAT

Menggabungkan beberapa string menjadi satu string

LENGTH

Mengembalikan jumlah karakter dalam suatu string

REPLACE

Mengganti semua kemunculan substring

REVERSE

Membalik urutan karakter dalam string

SUBSTR

Mengekstrak substring berdasarkan posisi dan panjang

TRIM

Menghapus spasi di awal dan akhir string
Konversi kapitalisasi

LOWER

Mengonversi semua huruf menjadi huruf kecil

UPPER

Mengonversi semua huruf menjadi huruf besar
Ekspresi reguler

REGEXP_REPLACE

Mengganti substring yang sesuai dengan ekspresi reguler

REGEXP_SUBSTR

Mengekstrak substring pertama yang sesuai dengan ekspresi reguler
Pencocokan awalan

START_WITH

Mengembalikan true jika string diawali dengan awalan tertentu
Pencarian teks penuh

MATCH

Mencocokkan nilai kolom terhadap ekspresi pencarian menggunakan indeks pencarian
Hash kriptografi

MD5

Mengembalikan hash MD5 dari suatu string

SHA256

Mengembalikan hash SHA256 dari suatu string

CONCAT

Menggabungkan dua atau lebih string menjadi satu string tanpa menambahkan pembatas di antara nilai-nilai tersebut.

Sintaks

CONCAT('string1', 'string2', ..., 'stringN')

Parameter

ParameterWajibDeskripsi
'string1', 'string2', ..., 'stringN'YaString yang akan digabungkan. Masukkan dua atau lebih nilai string.

Contoh

SELECT concat('a', 'b', 'c') AS val;

Hasil:

+-----+
| val |
+-----+
| abc |
+-----+

LENGTH

Mengembalikan jumlah karakter dalam suatu string.

Sintaks

LENGTH('string')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan diukur.

Contoh

SELECT length('abc') AS len;

Hasil:

+-----+
| len |
+-----+
| 3   |
+-----+

LOWER

Mengonversi semua huruf dalam string menjadi huruf kecil. Karakter non-huruf tidak terpengaruh.

Sintaks

LOWER('string')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan dikonversi.

Contoh

Contoh 1: Konversi ABC menjadi huruf kecil.

SELECT lower('ABC') AS val;

Hasil:

+-----+
| val |
+-----+
| abc |
+-----+

Contoh 2: Konversi string campuran menjadi huruf kecil.

SELECT lower('Abc') AS val;

Hasil:

+-----+
| val |
+-----+
| abc |
+-----+

UPPER

Mengonversi semua huruf dalam string menjadi huruf besar. Karakter non-huruf tidak terpengaruh.

Sintaks

UPPER('string')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan dikonversi.

Contoh

Contoh 1: Konversi abc menjadi huruf besar.

SELECT upper('abc') AS val;

Hasil:

+-----+
| val |
+-----+
| ABC |
+-----+

Contoh 2: Konversi string campuran menjadi huruf besar.

SELECT upper('aBC') AS val;

Hasil:

+-----+
| val |
+-----+
| ABC |
+-----+

TRIM

Menghapus spasi di awal dan akhir string. Spasi di dalam string tetap dipertahankan.

Sintaks

TRIM('string')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan dipangkas.

Contoh

SELECT trim(' abc    ') AS str;

Hasil:

+-----+
| str |
+-----+
| abc |
+-----+

REPLACE

Mengganti semua kemunculan substring dalam suatu string.

Sintaks

REPLACE('string', 'from_str', 'to_str')

Parameter

ParameterWajibDeskripsi
stringYaString sumber.
from_strYaSubstring yang akan dicari dan diganti.
to_strYaSubstring pengganti.

Contoh

Contoh 1: Ganti bc dalam abc dengan cd.

SELECT replace('abc', 'bc', 'cd') AS val;

Hasil:

+-----+
| val |
+-----+
| acd |
+-----+

Contoh 2: Ganti semua kemunculan bc dalam abcbc dengan cd.

SELECT replace('abcbc', 'bc', 'cd') AS val;

Hasil:

+-------+
|  val  |
+-------+
| acdcd |
+-------+

REVERSE

Membalik urutan karakter dalam string.

Sintaks

REVERSE('string')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan dibalik.

Contoh

SELECT reverse('abc') AS val;

Hasil:

+-----+
| val |
+-----+
| cba |
+-----+

SUBSTR

Mengekstrak substring mulai dari posisi tertentu, dengan batas panjang opsional.

Sintaks

SUBSTR(string, position [, length])

Parameter

ParameterWajibDeskripsi
stringYaString sumber.
positionYaPosisi berbasis 1 tempat ekstraksi dimulai. Harus berupa bilangan bulat >= 1.
lengthTidakJumlah karakter yang akan diekstrak. Harus berupa bilangan bulat >= 1. Nilai default: mengekstrak dari position hingga akhir string.

Contoh

Contoh 1: Ekstrak dari posisi 2 hingga akhir string.

SELECT substr('abc', 2) AS val;

Hasil:

+-----+
| val |
+-----+
| bc  |
+-----+

Contoh 2: Ekstrak 2 karakter mulai dari posisi 1.

SELECT substr('abc', 1, 2) AS val;

Hasil:

+-----+
| val |
+-----+
| ab  |
+-----+

START_WITH

Mengembalikan true jika string diawali dengan awalan yang ditentukan, dan false jika tidak.

Sintaks

START_WITH('string', 'prefix')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan diperiksa.
prefixYaAwalan yang akan dicocokkan terhadap awal string.

Contoh

Contoh 1: Periksa apakah abc diawali dengan ab.

SELECT start_with('abc', 'ab') AS val;

Hasil:

+------+
| val  |
+------+
| true |
+------+

Contoh 2: Periksa apakah abc diawali dengan bc.

SELECT start_with('abc', 'bc') AS val;

Hasil:

+-------+
| val   |
+-------+
| false |
+-------+

REGEXP_REPLACE

Mengganti substring yang sesuai dengan ekspresi reguler, dimulai dari posisi tertentu.

Sintaks

REGEXP_REPLACE('string', pattern, replacement [, position])

Parameter

ParameterWajibDeskripsi
stringYaString sumber.
patternYaPola ekspresi reguler yang menentukan aturan pencocokan.
replacementYaString yang akan menggantikan setiap kecocokan.
positionTidakPosisi karakter berbasis 1 tempat pencarian dimulai. Harus berupa bilangan bulat >= 1. Nilai default: 1 (dimulai dari karakter pertama).

Contoh

Contoh 1: Ganti semua kecocokan b dalam abc dengan c (posisi default).

SELECT regexp_replace('abc', 'b', 'c') AS val;

Hasil:

+-----+
| val |
+-----+
| acc |
+-----+

Contoh 2: Ganti kecocokan b dalam abcbc mulai dari posisi 2.

SELECT regexp_replace('abcbc', 'b', 'c', 2) AS val;

Hasil:

+-------+
|  val  |
+-------+
| acccc |
+-------+

Contoh 3: Ganti kecocokan b dalam abcbc mulai dari posisi 3. b pada posisi 2 tidak diganti.

SELECT regexp_replace('abcbc', 'b', 'c', 3) AS val;

Hasil:

+-------+
|  val  |
+-------+
| abccc |
+-------+

REGEXP_SUBSTR

Mengembalikan substring pertama yang sesuai dengan ekspresi reguler, dimulai dari posisi tertentu.

Sintaks

REGEXP_SUBSTR('string', pattern [, position])

Parameter

ParameterWajibDeskripsi
stringYaString sumber.
patternYaPola ekspresi reguler yang menentukan aturan pencocokan.
positionTidakPosisi karakter berbasis 1 tempat pencarian dimulai. Harus berupa bilangan bulat >= 1. Nilai default: 1 (dimulai dari karakter pertama).

Contoh

Contoh 1: Cari b dalam abc dari karakter pertama (default).

SELECT regexp_substr('abc', 'b') AS val;

Hasil:

+-----+
| val |
+-----+
| b   |
+-----+

Contoh 2: Cari b dalam abc mulai dari posisi 3. Tidak ditemukan kecocokan karena b berada di posisi 2.

SELECT regexp_substr('abc', 'b', 3) AS val;

Hasil:

+-----+
| val |
+-----+
|     |
+-----+

MD5

Mengembalikan hash MD5 dari suatu string.

Sintaks

MD5('string')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan di-hash.

Contoh

SELECT md5('abc') AS val;

Hasil:

+----------------------------------+
|               val                |
+----------------------------------+
| 900150983cd24fb0d6963f7d28e17f72 |
+----------------------------------+

SHA256

Mengembalikan hash SHA256 dari suatu string.

Sintaks

SHA256('string')

Parameter

ParameterWajibDeskripsi
stringYaString yang akan di-hash.

Contoh

Contoh ini membuat tabel sampel, memasukkan satu baris, lalu mengkueri hash SHA256 dari nilai kolom.

-- Buat tabel sampel.
CREATE TABLE tb (id INT, name VARCHAR, address VARCHAR, PRIMARY KEY(id, name));

-- Masukkan satu baris.
UPSERT INTO tb (id, name, address) VALUES (1, 'jack', 'hz');

-- Kueri hash SHA256 dari kolom name.
SELECT sha256(name) AS sc FROM tb WHERE id = 1;

Hasil:

+------------------------------------------------------------------+
|                                sc                                |
+------------------------------------------------------------------+
| 31611159e7e6ff7843ea4627745e89225fc866621cfcfdbd40871af4413747cc |
+------------------------------------------------------------------+

MATCH

Mencari nilai kolom menggunakan ekspresi pencarian teks penuh dan indeks pencarian. Hasil diurutkan berdasarkan relevansi secara menurun secara default.

Penting
  • MATCH memerlukan LindormTable versi 2.7.2 atau lebih baru. Untuk upgrade, lihat Catatan rilis LindormTable dan upgrade instans Anda.

  • MATCH hanya berfungsi dengan indeks pencarian. Ketika kondisi MATCH dan indeks pencarian keduanya tersedia, sistem secara otomatis menggunakan indeks pencarian.

Catatan penggunaan

  • Kolom non-terindeks: Sistem pertama-tama mengambil baris melalui indeks pencarian, lalu menyaring kolom non-terindeks satu per satu. Hal ini dapat menurunkan performa pada set data besar. Untuk menghindarinya, gunakan pernyataan ADD COLUMN untuk menambahkan kolom terkait ke dalam indeks pencarian.

  • Tabel utama dan indeks sekunder: MATCH tidak didukung pada tabel utama atau indeks sekunder. Untuk itu, gunakan LIKE untuk kueri fuzzy. Kueri fuzzy memberikan performa lebih rendah dibandingkan kueri bertoken.

  • Menggabungkan MATCH dan LIKE: Saat menggunakan keduanya dalam satu kueri yang sama, konfigurasikan kolom terkait sebagai kolom bertoken dalam indeks pencarian.

Sintaks

MATCH (column_identifiers) AGAINST (search_expr)

MATCH hanya dapat digunakan dalam klausa WHERE pernyataan SELECT.

Parameter

ParameterWajibDeskripsi
column_identifiersYaSatu atau beberapa nama kolom yang akan dicari, dipisahkan koma. Jika beberapa kolom ditentukan, nilai-nilainya digabungkan dan dicocokkan bersama. Indeks pencarian harus tersedia untuk semua kolom yang ditentukan, dengan alat analisis dikonfigurasi untuk segmentasi kata. Lihat Aktifkan fitur indeks pencarian dan CREATE INDEX.
search_exprYaKonstanta string yang menentukan aturan pencocokan. Lihat Sintaks aturan pencocokan di bawah ini.

Sintaks aturan pencocokan

Aturan pencocokan terdiri dari satu atau beberapa kondisi yang dipisahkan spasi. Setiap kondisi adalah salah satu dari berikut:

  • Satu kata — mencocokkan baris yang berisi kata tersebut. Contoh: hello

  • Frasa dalam tanda kutip — mencocokkan baris yang berisi frasa persis tanpa segmentasi kata. Contoh: "hello world"

  • Sub-aturan dalam tanda kurung — mencocokkan baris yang memenuhi aturan di dalamnya. Contoh: (another "hello world")

Tambahkan simbol di awal kondisi untuk mengubah perilakunya:

SimbolMakna
+Kondisi harus dipenuhi (AND)
-Kondisi tidak boleh dipenuhi (NOT)
*(tidak ada)*Kondisi opsional, tetapi baris yang cocok memiliki peringkat lebih tinggi

Contoh

Contoh berikut menggunakan tabel sampel ini:

-- Buat tabel sampel.
CREATE TABLE tb (id INT, c1 VARCHAR, PRIMARY KEY(id));

-- Buat indeks pencarian. Aktifkan fitur indeks pencarian sebelum menjalankan pernyataan ini.
CREATE INDEX idx USING SEARCH ON tb (c1(type=text));

-- Masukkan baris.
UPSERT INTO tb (id, c1) VALUES (1, 'hello');
UPSERT INTO tb (id, c1) VALUES (2, 'world');
UPSERT INTO tb (id, c1) VALUES (3, 'hello world');
UPSERT INTO tb (id, c1) VALUES (4, 'hello my world');
UPSERT INTO tb (id, c1) VALUES (5, 'hello you');
UPSERT INTO tb (id, c1) VALUES (6, 'hello you and me');
UPSERT INTO tb (id, c1) VALUES (7, 'you and me');

Contoh 1: Kembalikan baris di mana c1 berisi hello atau world (atau keduanya). Baris yang cocok dengan kedua istilah memiliki peringkat lebih tinggi.

SELECT * FROM tb WHERE MATCH (c1) AGAINST ('hello world');

Hasil:

+----+------------------+
| id |        c1        |
+----+------------------+
| 3  | hello world      |
| 2  | world            |
| 4  | hello my world   |
| 5  | hello you        |
| 1  | hello            |
| 6  | hello you and me |
+----+------------------+

Contoh 2: Kembalikan baris di mana c1 harus berisi world dan secara opsional berisi hello. Baris dengan kedua istilah memiliki peringkat lebih tinggi.

SELECT * FROM tb WHERE MATCH (c1) AGAINST ('hello +world');

Hasil:

+----+----------------+
| id |       c1       |
+----+----------------+
| 3  | hello world    |
| 2  | world          |
| 4  | hello my world |
+----+----------------+

Contoh 3: Kembalikan baris di mana c1 berisi world tetapi tidak berisi hello.

SELECT * FROM tb WHERE MATCH (c1) AGAINST ('-hello +world');

Hasil:

+----+-------+
| id |  c1   |
+----+-------+
| 2  | world |
+----+-------+

Contoh 4: Kembalikan baris di mana c1 berisi frasa persis hello world.

SELECT * FROM tb WHERE MATCH (c1) AGAINST ('"hello world"');

Hasil:

+----+-------------+
| id |     c1      |
+----+-------------+
| 3  | hello world |
+----+-------------+

Contoh 5: Kembalikan baris di mana c1 harus berisi hello dan minimal salah satu dari you atau me.

SELECT * FROM tb WHERE MATCH (c1) AGAINST ('+hello +(you me)');

Hasil:

+----+------------------+
| id |        c1        |
+----+------------------+
| 6  | hello you and me |
| 5  | hello you        |
+----+------------------+