Menggunakan LIKE Clause Di MySQL

0
Like clause digunakan untuk menampilkan data berdasarkan pola atau pattern tertentu. Misalkan, menampilkan data nama karyawan yang diawali dengan huruf 'A', mencari data nama karyawan yang mengandung kata 'Muhammad', dan lain sebagainya.

Like clause tidak hanya digunakan pada Select statement saja, tetapi dapat digunakan juga pada Update statement maupun Delete statement. Tetapi pada tutorial ini, kita akan membatasi hanya pada Select statement saja.

Di bawah ini adalah tabel contoh sederhana penggunaan Like clause:

Statemen Arti
WHERE gaji LIKE '100%' Menampilkan gaji yang dimulai dengan 100
WHERE gaji LIKE '%100' Menampilkan gaji yang diakhiri dengan 100
WHERE gaji LIKE '%100%' Menampilkan gaji mengandung angka 100
WHERE gaji LIKE '_10%' Menampilkan gaji, dimana posisi kedua dan kedua dimulai dengan angka 1 dan 0
WHERE gaji LIKE '_10%' Menampilkan gaji, dimana posisi kedua dan kedua dimulai dengan angka 1 dan 0
WHERE gaji LIKE '2_5%' Menampilkan gaji, diawali dengan 2 dan diakhiri dengan 5, dengan panjang maksimal 3 karakter

Sintak Dasar


Di bawah ini adalah sintak dasar dari Like clause pada Select statement:

SELECT FROM nama_tabel
WHERE nama_kolom LIKE 'XXXX%'

Atau 

SELECT FROM nama_tabel
WHERE nama_kolom LIKE '%XXXX%'

Atau

SELECT FROM nama_tabel
WHERE nama_kolom LIKE 'XXXX_'

Atau

SELECT FROM nama_tabel
WHERE nama_kolom LIKE '_XXXX'

Atau

SELECT FROM nama_tabel
WHERE nama_kolom LIKE '_XXXX_'

Contoh


Misalkan Anda telah memiliki sebuah tabel pegawai dengan data-data sebagai berikut:

mysql> SELECT * FROM pegawai;
+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+
10 rows in set (0.27 sec)

Dari data diatas, coba Anda kerjakan soal berikut ini:

  • Tampilkan data pegawai, yang memiliki nama lengkap dengan awalah huruf 'N'.
    mysql> SELECT * FROM karyawan
        -> WHERE nama_lengkap LIKE 'N%';
    +------------+---------------+---------------+----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat   | umur | gaji     | departemen |
    +------------+---------------+---------------+----------+------+----------+------------+
    | P001       | Nursalim      | L             | Jakarta  |   27 | 15000000 | IT         |
    | P003       | Nurul Hikmah  | P             | Semarang |   20 |  4000000 | HR         |
    | P006       | Naura Krasiva | P             | Magelang |   21 |  3000000 | HR         |
    +------------+---------------+---------------+----------+------+----------+------------+
    3 rows in set (0.00 sec)
    
    
  • Tampilkan data pegawai, yang memiliki alamat dengan akhiran huruf 'ng'.
    mysql> SELECT * FROM pegawai
        -> WHERE alamat LIKE '%ng';
    +------------+---------------+---------------+-----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
    +------------+---------------+---------------+-----------+------+----------+------------+
    | P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
    | P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
    | P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
    | P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
    +------------+---------------+---------------+-----------+------+----------+------------+
    4 rows in set (0.00 sec)
    
    
  • Tampilkan data pegawai, dimana nama lengkapnya mengandung huruf 'S' atau 's'.
    mysql> SELECT * FROM pegawai
        -> WHERE nama_lengkap LIKE '%s%'
        -> OR nama_lengkap LIKE '%S%';
    +------------+---------------+---------------+----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat   | umur | gaji     | departemen |
    +------------+---------------+---------------+----------+------+----------+------------+
    | P001       | Nursalim      | L             | Jakarta  |   27 | 15000000 | IT         |
    | P002       | Iskiyati      | P             | Bandung  |   23 |  7000000 | MKT        |
    | P005       | Sri Rahayu    | P             | Surabaya |   25 |  8000000 | ACC        |
    | P006       | Naura Krasiva | P             | Magelang |   21 |  3000000 | HR         |
    +------------+---------------+---------------+----------+------+----------+------------+
    4 rows in set (0.00 sec)
    
    

    Atau Anda juga dapat menggunakan LIKE Clause dengan menambahkan fungsi yang ada di MySQL seperti fungsi LOWER() yang digunakan untuk mengkonversi sebuah string atau karakter menjadi huruf kecil.
    mysql> SELECT * FROM pegawai
        -> WHERE LOWER(nama_lengkap) LIKE '%s%';
    +------------+---------------+---------------+----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat   | umur | gaji     | departemen |
    +------------+---------------+---------------+----------+------+----------+------------+
    | P001       | Nursalim      | L             | Jakarta  |   27 | 15000000 | IT         |
    | P002       | Iskiyati      | P             | Bandung  |   23 |  7000000 | MKT        |
    | P005       | Sri Rahayu    | P             | Surabaya |   25 |  8000000 | ACC        |
    | P006       | Naura Krasiva | P             | Magelang |   21 |  3000000 | HR         |
    +------------+---------------+---------------+----------+------+----------+------------+
    4 rows in set (0.03 sec)
    

Sekian Panduan Tutorial tentang Penggunaan Like Clause Di MySQL. Semoga bermanfaat & Happy Learning MySQL.

Salam,

Nursalim

0 Comments