Masalah:
Anda ingin menemukan substring yang cocok dengan pola dalam string.
Contoh:
Basis data kami memiliki tabel bernama pelanggan dengan data di kolom berikut:id
, first_name
, last_name
, dan city
.
id | nama_depan | nama_belakang | kota |
---|---|---|---|
1 | Alan | Watson | Madrid |
2 | Lisa | Hitam | Singapura |
3 | Laura | Williams | Seattle |
4 | Milan | Batu | Seoul |
Mari kita lihat beberapa contoh pencocokan pola dalam SQL.
Contoh 1:
Mari kita tampilkan nama depan, nama belakang, dan kota setiap pelanggan yang nama kotanya dimulai dengan huruf 'S.'
Solusi:
SELECT last_name, first_name, city FROM customer WHERE city LIKE 'S%';
nama_belakang | nama_depan | kota |
---|---|---|
Lisa | Hitam | S Indonesia |
Milan | Bata | S eoul |
Laura | Williams | S makan |
Kami menggunakan % wildcard, yang mewakili nol atau lebih karakter yang tidak diketahui. Wildcard ini dapat digunakan di mana saja dalam string.
Contoh 2:
Mari kita tunjukkan nama depan, nama belakang, dan kota dari setiap pelanggan yang nama kotanya berisi tepat lima karakter.
Solusi:
SELECT last_name, first_name, city FROM customer WHERE city LIKE '_____';
Ini hasilnya:
nama_belakang | nama_depan | kota |
---|---|---|
Milan | Bata | Seoul |
Wildcard garis bawah dapat digunakan untuk mewakili satu karakter yang tidak diketahui. Jadi, dengan menggunakan lima di antaranya secara berurutan, kita dapat merepresentasikan semua string yang panjangnya lima karakter. Dalam contoh kita, satu-satunya kota yang cocok dengan deskripsi itu adalah Seoul.
Contoh 3:
Mari kita tunjukkan nama depan, nama belakang, dan kota setiap pelanggan yang kotanya dimulai dengan huruf 'S' dan memiliki huruf 'o' sebagai karakter ketiga hingga terakhir.
Solusi:
SELECT last_name, first_name, city FROM customer WHERE city LIKE 'S%o__';
Ini hasilnya:
nama_belakang | nama_depan | kota |
---|---|---|
Lisa | Hitam | S ingapo kembali |
Milan | Batu | S eo ul |
Kueri hanya mengembalikan dua catatan:Lisa Black dari S ingapo re dan Milan Brick dari S eo ul. Kota-kota ini cocok dengan pola yang diberikan. Di sini, kami menggabungkan kedua wildcard untuk menghasilkan pola yang lebih spesifik:semua string dimulai dengan huruf kapital 'S' dan berisi sejumlah karakter lain setelah itu, selama karakter ketiga hingga terakhir adalah huruf kecil 'o. '
Diskusi:
Jika Anda ingin memilih catatan di mana string cocok dengan pola tertentu, Anda dapat menggunakan LIKE
klausa sebagai kondisi dalam WHERE
ayat. Setelah WHERE
, cantumkan nama kolom (mis., city
) diikuti dengan LIKE
klausa yang menentukan pola string (mis., 'S%o__'
) untuk mencari.
Seperti yang kita lihat dalam contoh, Anda dapat menggunakan dua karakter khusus yang dikenal sebagai wildcard untuk mewakili karakter yang tidak dikenal:
- Wildcard '%' menunjukkan nol karakter atau lebih.
- Wildcard '_' menunjukkan karakter tunggal apa pun.
Anda dapat menggabungkan wildcard ini untuk mencapai beberapa hasil yang sangat kuat. Anda juga dapat membuat rantai lebih dari satu LIKE
kondisi. Terakhir, Anda dapat menggunakan NOT
operator untuk menemukan string yang tidak cocok dengan pola yang diberikan.