Operator Like pada MySQL

Image by Karolina Grabowska on Pexels

Operator like pada mysql digunakan untuk menampilkan data dengan cara mencocokkan pola/pattern yang diinginkan, pola/pattern tersebut umumnya berupa karakter / string namun bisa juga berupa angka atau field dengan tipe data integer, pada operator like juga tersedia wildcard/karakter khusus untuk membantu pencarian dengan pola tertentu seperti mencari data dengan akhiran huruf t atau berawalan huruf b atau huruf yang berada di tengah-tengah kalimat, wildcard yang dapat digunakan diantaranya adalah sebagai berikut:

  • _ (underscore/garis bawah) : Mencocokkan satu karakter
  • % : Mencocokkan karakter dengan panjang tak terbatas, termasuk tanpa karakter
Berikut ini berbagai contoh cara menggunakan operator like pada MySQL:

Like Tanpa Wildcard

mysql> select nama from mahasiswa where nama like "yeager";
+--------+
| nama   |
+--------+
| Yeager |
+--------+
1 row in set (0.00 sec)

mysql> select id_mhs, nama, kota from mahasiswa where kota like "jakarta pusat";
+--------+-------------+---------------+
| id_mhs | nama        | kota          |
+--------+-------------+---------------+
|     26 | A. A. Filda | Jakarta Pusat |
|     27 | A. Abimana  | Jakarta Pusat |
|     28 | A. Adinda   | Jakarta Pusat |
|     66 | Zeke        | Jakarta Pusat |
|     67 | Eren        | Jakarta Pusat |
|     72 | Dewa Kipas  | Jakarta Pusat |
|     73 | Ryan        | Jakarta Pusat |
|     75 | Ryan        | Jakarta Pusat |
|     76 | Ryan        | Jakarta Pusat |
|     78 | Ryan        | Jakarta Pusat |
|     80 | Ryan        | Jakarta Pusat |
|     82 | Ryan        | Jakarta Pusat |
|     84 | Ackerman    | Jakarta Pusat |
|     86 | Erwin       | Jakarta Pusat |
+--------+-------------+---------------+
14 rows in set (0.00 sec)

mysql> select id_mhs, nama from mahasiswa where id_mhs like "30";
+--------+------------+
| id_mhs | nama       |
+--------+------------+
|     30 | A. Aprilia |
+--------+------------+
1 row in set (0.00 sec)
Contoh diatas adalah mencari karakter sesuai dengan pola dimana pola/pattern tersebut diapit dengan tanda petik dua setelah menggunakan like dan berada didalam klausa where, dari contoh diatas dapat dilihat bahwa penggunaan like tanpa disertai wildcard mirip dengan penggunaan operator = (sama dengan).

Like dengan Wildcard %

Operator like dengan wildcard % adalah untuk mencari berdasarkan pola tertentu, contohnya seperti berikut ini:
mysql> select nama from mahasiswa where nama like "%" limit 5;
+----------------+
| nama           |
+----------------+
| AA Aditya A    |
| A Aditya A     |
| A Dimas A      |
| A Faisal Dimas |
| A Faridah Nur  |
+----------------+
5 rows in set (0.00 sec)

mysql> select kota from mahasiswa where kota like "j%" limit 5;
+-----------------+
| kota            |
+-----------------+
| Jakarta Barat   |
| Jakarta Timur   |
| Jakarta Selatan |
| Jakarta Timur   |
| Jakarta Utara   |
+-----------------+
5 rows in set (0.00 sec)

mysql> select kota from mahasiswa where kota like "%t" limit 5;
+---------------+
| kota          |
+---------------+
| Jakarta Barat |
| Bekasi Barat  |
| Bekasi Barat  |
| Jakarta Barat |
| Jakarta Barat |
+---------------+
5 rows in set (0.00 sec)

mysql> select kota from mahasiswa where kota like "%s%" limit 5;
+-----------------+
| kota            |
+-----------------+
| Bekasi Utara    |
| Bekasi Timur    |
| Jakarta Selatan |
| Bekasi Barat    |
| Bekasi Barat    |
+-----------------+
5 rows in set (0.00 sec)
Dari contoh diatas penggunaan wildcard % tanpa diikut berbagai karakter apa saja akan menampilkan semua isi data, sedangkan penggunaan j% dimaksudkan mencari nilai dari field kota yang diawali dengan huruf j, sementara jika huruf berada di belakang wildcard artinya kita akan menampilkan data yang huruf terakhirnya adalah t, dan jika diapit oleh dua wildcard seperti %s% artinya kombinasi dari kedua hal tersebut yakni dengan mencari nilai yang diawali dan diakhiri huruf s, serta setiap nilai yang memiliki huruf s ditengah. Contoh lainnya adalah seperti berikut:
mysql> select kota from mahasiswa where kota like "b%r limit 5";
+--------------+
| kota         |
+--------------+
| Bekasi Timur |
| Bogor        |
| Bekasi Timur |
| Bekasi Timur |
| Bekasi Timur |
+--------------+
9 rows in set (0.00 sec)

mysql> select kota from mahasiswa where kota like "b%r%" limit 5;
+--------------+
| kota         |
+--------------+
| Bekasi Utara |
| Bekasi Timur |
| Bogor        |
| Bekasi Barat |
| Bekasi Barat |
+--------------+
5 rows in set (0.00 sec)
Dari contoh diatas dapat terlihat penggunaan b%r yang artinya adalah untuk mencari data yang berawalan b dan berakhiran t, sedangkan pada penggunaan b%r% yang berarti menampilkan data yang diawali dengan huruf b, serta tengah dan akhiran kalimat dengan huruf r.

Like dengan Wildcard _ (underscore/garis bawah)

Sama seperti wildcard %, penggunaan like dengan wildcard _ (underscore) juga digunakan untuk mencari data dengan mencocokkan pola hanya saja untuk wildcard underscore tidak sama dengan % dimana kita mencari data dengan melewati huruf/string, contohnya seperti berikut:
mysql> select nama from mahasiswa where nama like "a%" limit 5;
+----------------+
| nama           |
+----------------+
| AA Aditya A    |
| A Aditya A     |
| A Dimas A      |
| A Faisal Dimas |
| A Faridah Nur  |
+----------------+
5 rows in set (0.00 sec)

mysql> select nama from mahasiswa where nama like "_a%" limit 5;
+---------------+
| nama          |
+---------------+
| AA Aditya A   |
| Bagus Prakoso |
| Bayu Raise    |
| Bara          |
| Hannibal      |
+---------------+
5 rows in set (0.00 sec)

mysql> select nama from mahasiswa where nama like "%r_" limit 5;
+--------------+
| nama         |
+--------------+
| A Ryan Putra |
| A. A. Chery  |
| Bara         |
| Sakura       |
| Dery         |
+--------------+
5 rows in set (0.00 sec)
Dari contoh diatas dapat terlihat perbedaan menggunakan wildcard % yang menampilkan semua data berawalan dengan huruf a sementara underscore menampilkan data dengan melewati satu huruf didepan sehingga mencari nilai yang huruf keduanya diawali dengan huruf a, semakin banyak underscore yang digunakan maka semakin banyak huruf yang dilewati, contohnya seperti berikut:
mysql> select nama from mahasiswa where nama like "__a%" limit 5;
+------------+
| nama       |
+------------+
| A Aditya A |
| Prakoso    |
| Beatric    |
| Eka        |
| Prayoga    |
+------------+
5 rows in set (0.00 sec)

mysql> select nama from mahasiswa where nama like "%r__" limit 5;
+---------------+
| nama          |
+---------------+
| A Fatirah     |
| A Rafli Harun |
| Beatric       |
| Amirul        |
| Eren          |
+---------------+
5 rows in set (0.00 sec)
Selain itu kita juga bisa menggunakannya dengan tambahan karakter seperti berikut:
mysql> select nama from mahasiswa where nama like "_a_u%";
+---------------+
| nama          |
+---------------+
| Bagus Prakoso |
| Bayu Raise    |
| Sakura        |
+---------------+
3 rows in set (0.00 sec)

mysql> select nama from mahasiswa where nama like "%_a_u%";
+--------------------+
| nama               |
+--------------------+
| A Rafli Harun      |
| A. A. Bagus Wibowo |
| A. A. Bayu Andika  |
| Bagus Prakoso      |
| Bayu Raise         |
| Sakura             |
+--------------------+
6 rows in set (0.00 sec)
Sampai disini pembahasan operator like pada mysql sudah selesai, jika ada pertanyaan jangan sungkan untuk bertanya, untuk pembahasan lainnya dapat melihat halaman daftar isi.
Bayu Radityo

Seorang lulusan teknik informatika yang senang dalam berbagi ilmu pengetahuan, dan membuat karya digital berupa photomanipulation dan digital drawing. instagram external-link

Posting Komentar

Lebih baru Lebih lama