Bahasa SQL‎ > ‎Fungsi String / Text‎ > ‎

Menggunakan Regular Expression (REGEX) Pada MySQL

Pendahuluan

Regular Expression (REGEX) adalah konstruksi bahasa untuk mencocokkan teks berdasarkan pola tertentu, terutama untuk kasus-kasus kompleks. Contoh misalkan mencari teks berawalan karakter tertentu, memiliki jumlah perulangan dari suatu teks, dan lain sebagainya. Selain itu, REGEX juga sangat manjur (powerful) terutama untuk proses penguraian kata (text parsing). 

Pada artikel ini tidak akan dibahas mengenai REGEX itu sendiri, tapi bagaimana kita menggunakannya pada statement MySQL kita. Untuk informasi mengenai REGEX sendiri dapat dilihat pada halaman ini.

Operator Regular Expression

MySQL menggunakan 3 operator untuk REGEX ini :
  1. REGEXP : melakukan pencocokan pola (pattern matching) menggunakan Regular Expresssion.
  2. NOT REGEXP : negasi dari REGEXP.
  3. RLIKE : sama dengan REGEXP.
Syntax :

expression [NOT] REGEXP expression
atau
expression [NOT] RLIKE expression

Contoh Penggunaan (Menggunakan database PHI-Minimart)

Berikut adalah contoh penggunaan operator regular expression dari yang sederhana sampai dengan yang kompleks :
  1. Mencari nama produk yang mengandung kata "in".

    SELECT  kode_produk, nama_produk FROM ms_produk WHERE nama_produk REGEXP 'in';



  2. Mencari nama produk yang memiliki awalan kata "kacang".

    SELECT kode_produk, nama_produk FROM ms_produk WHERE nama_produk REGEXP '^kacang';



  3. Mencari nama produk yang tidak memiliki kata "kacang".

    SELECT kode_produk, nama_produk FROM ms_produk WHERE nama_produk NOT RLIKE "kacang";



  4. Mencari nama produk yang hanya memiliki jumlah 4 kata.

    SELECT kode_produk, nama_produk FROM ms_produk 
    WHERE TRIM(nama_produk) RLIKE  "^([[:alnum:]]+[[:space:]]+){3}[[:alnum:]]+$";



Comments