Apa itu MySQL Wildcard?
Karakter pengganti MySQL adalah karakter yang membantu pencarian data yang cocok dengan kriteria kompleks. Karakter pengganti digunakan bersama dengan operator perbandingan LIKE atau dengan operator perbandingan TIDAK SUKA.
Mengapa menggunakan WildCard?
Jika Anda terbiasa menggunakan SQL, Anda mungkin berpikir bahwa Anda dapat mencari data kompleks apa pun menggunakan klausa SELECT dan WHERE. Lalu mengapa menggunakan Wildcard?
Sebelum kita menjawab pertanyaan itu, mari kita lihat contohnya. Misalkan departemen pemasaran perpustakaan video Myflix melakukan promosi pemasaran di kota Texas dan ingin mendapatkan masukan tentang jumlah anggotanya
yang terdaftar dari Texas, Anda dapat menggunakan pernyataan SELECT berikut bersama dengan klausa WHERE untuk mendapatkan informasi yang diinginkan.
SELECT * FROM members WHERE postal_address = 'Austin , TX' OR postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';
Seperti yang Anda lihat dari kueri di atas, "klausa WHERE" menjadi kompleks. Namun, menggunakan wildcard, menyederhanakan kueri karena kita dapat menggunakan sesuatu yang sederhana seperti skrip yang ditunjukkan di bawah ini.
SELECT * FROM members WHERE postal_address like '% TX';
Singkatnya, karakter pengganti memungkinkan kami mengembangkan mesin pencari yang canggih ke dalam aplikasi berbasis data kami.
Jenis karakter pengganti
% persentase
% karakter persentase digunakan untuk menentukan pola nol (0) atau lebih karakter . Ini memiliki sintaks dasar berikut.
SELECT statements… WHERE fieldname LIKE 'xxx%';
SINI
- "Pernyataan SELECT…" adalah perintah SQL SELECT standar.
- "DI MANA" adalah kata kunci yang digunakan untuk menerapkan filter.
- "LIKE" adalah operator perbandingan yang digunakan bersama dengan karakter pengganti
- 'xxx' adalah pola awal yang ditentukan seperti satu karakter atau lebih dan "%" cocok dengan sejumlah karakter yang dimulai dari nol (0).
Untuk memahami sepenuhnya pernyataan di atas, mari kita lihat contoh praktisnya
Misalkan kita ingin mendapatkan semua film yang memiliki kata "code" sebagai bagian dari judulnya, kita akan menggunakan persentase wildcard untuk melakukan pencocokan pola pada kedua sisi kata "code". Di bawah ini adalah pernyataan SQL yang dapat digunakan untuk mencapai hasil yang diinginkan.
SELECT * FROM movies WHERE title LIKE '%code%';
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil yang ditunjukkan di bawah ini.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
7 | Davinci Code | NULL | NULL | 6 |
Perhatikan bahwa bahkan jika kata kunci pencarian "kode" muncul di awal atau akhir judul, itu masih dikembalikan dalam set hasil kami. Ini karena kode kita menyertakan sejumlah karakter di awal kemudian mencocokkan pola "kode" diikuti dengan sejumlah karakter di akhir.
Sekarang mari kita ubah skrip di atas untuk memasukkan persentase wildcard di awal kriteria pencarian saja.
SELECT * FROM movies WHERE title LIKE '%code';
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil yang ditunjukkan di bawah ini.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
7 | Davinci Code | NULL | NULL | 6 |
Perhatikan bahwa hanya satu record yang dikembalikan dari database. Ini karena kode kami cocok dengan sejumlah karakter di awal judul film dan hanya mendapatkan rekaman yang diakhiri dengan pola "kode".
Sekarang mari kita geser persentase wildcard ke akhir pola yang ditentukan untuk dicocokkan. Skrip yang dimodifikasi ditunjukkan di bawah ini.
SELECT * FROM movies WHERE title LIKE 'code%';Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil yang ditunjukkan di bawah ini.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
Perhatikan hanya satu record yang dikembalikan dari database. Ini karena kode kami cocok dengan semua judul yang dimulai dengan pola "kode" diikuti dengan sejumlah karakter.
_ menggarisbawahi karakter pengganti
Karakter pengganti garis bawah digunakan untuk mencocokkan dengan tepat satu karakter . Misalkan kita ingin mencari semua film yang dirilis pada tahun 200x di mana x adalah tepat satu karakter yang dapat bernilai berapa pun. Kami akan menggunakan kartu liar garis bawah untuk mencapai itu. Script di bawah memilih semua film yang dirilis pada tahun "200x"
SELECT * FROM movies WHERE year_released LIKE '200_';
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil yang ditunjukkan di bawah ini.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
9 | Honey mooners | Jhon Shultz | 2005 | 8 |
Perhatikan bahwa hanya film yang memiliki 200 diikuti oleh karakter apa pun dalam tahun lapangan yang dirilis yang dikembalikan dalam set hasil kami. Ini karena karakter pengganti garis bawah cocok dengan pola 200 yang diikuti oleh karakter tunggal apa pun
Tidak suka
Operator logika NOT dapat digunakan bersama dengan karakter pengganti untuk mengembalikan baris yang tidak cocok dengan pola yang ditentukan.
Misalkan kita ingin mendapatkan film yang tidak dirilis pada tahun 200x. Kami akan menggunakan operator logika NOT bersama dengan wildcard garis bawah untuk mendapatkan hasil kami. Di bawah ini adalah skrip yang melakukan itu.
SELECT * FROM movies WHERE year_released NOT LIKE '200_';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
8 | Underworld-Awakeninh | Michahel Eal | 2012 | 6 |
Perhatikan hanya film yang tidak dimulai dengan 200 pada tahun rilis yang dikembalikan dalam set hasil kami. Ini karena kami menggunakan operator logika NOT dalam penelusuran pola karakter pengganti kami.
Kata kunci melarikan diri.
Kata kunci ESCAPE digunakan untuk menghindari karakter pencocokan pola seperti persentase (%) dan garis bawah (_) jika mereka merupakan bagian dari data.
Misalkan kita ingin memeriksa string "67%" yang bisa kita gunakan;
LIKE '67#%%' ESCAPE '#';
Jika kita ingin mencari film "67% Guilty", kita dapat menggunakan script di bawah ini untuk melakukannya.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Perhatikan ganda " %% " di klausa LIKE, yang pertama berwarna merah " % " diperlakukan sebagai bagian dari string yang akan dicari. Yang lainnya digunakan untuk mencocokkan sejumlah karakter berikutnya.
Kueri yang sama juga akan berfungsi jika kita menggunakan sesuatu seperti
SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';
Ringkasan
- Alat canggih Like & Wildcard yang membantu pencarian data yang cocok dengan pola kompleks.
- Ada beberapa karakter pengganti yang mencakup persentase, garis bawah, dan daftar karakter (tidak didukung oleh MySQL)
- Persentase karakter pengganti digunakan untuk mencocokkan sejumlah karakter mulai dari nol (0) dan banyak lagi.
- Karakter pengganti garis bawah digunakan untuk mencocokkan dengan tepat satu karakter.