MySQL Tutorial Wildcard: Suka, BUKAN Suka, Escape, ( % ), ( _ )
Apa MySQL Karakter pengganti?
MySQL Kartu liar adalah karakter yang membantu pencarian data yang sesuai dengan kriteria yang kompleks. Karakter pengganti digunakan bersama dengan operator perbandingan LIKE atau dengan operator perbandingan NOT LIKE.
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 menjawab pertanyaan itu, mari kita lihat contohnya. Misalkan departemen pemasaran perpustakaan video Myflix melakukan promosi pemasaran di kota Texas dan ingin mendapatkan umpan balik tentang jumlah anggota
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 rumit. Namun, penggunaan karakter pengganti 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, wildcard memungkinkan kami mengembangkan mesin pencari canggih ke dalam aplikasi berbasis data.
Jenis wildcard
% persentase
% karakter persentase digunakan untuk menentukan pola nol (0) atau lebih karakter. Ia memiliki sintaksis dasar sebagai berikut.
SELECT statements... WHERE fieldname LIKE 'xxx%';
SINI
- "PILIH pernyataan…” adalah perintah SQL SELECT standar.
- “WHERE” adalah kata kunci yang digunakan untuk menerapkan filter.
- “LIKE” adalah operator perbandingan yang digunakan bersama dengan karakter pengganti
- 'xxx' adalah pola awal tertentu seperti satu karakter atau lebih dan “%” cocok dengan sejumlah karakter yang dimulai dari nol (0).
Untuk sepenuhnya memahami pernyataan di atas, mari kita lihat contoh praktisnya
Misalkan kita ingin mendapatkan semua film yang memiliki kata “kode” sebagai bagian dari judulnya, kita akan menggunakan persentase wildcard untuk melakukan pencocokan pola di kedua sisi kata “kode”. 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 dalam MySQL meja kerja 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 meskipun kata kunci pencarian “kode” muncul di awal atau akhir judul, kata kunci tersebut tetap dikembalikan dalam kumpulan hasil kami. Ini karena kode kita menyertakan sejumlah karakter di awal, lalu cocok dengan pola “kode” yang diikuti sejumlah karakter di akhir.
Sekarang mari kita modifikasi skrip di atas untuk menyertakan persentase wildcard di awal kriteria pencarian saja.
SELECT * FROM movies WHERE title LIKE '%code';
Menjalankan skrip di atas dalam MySQL meja kerja melawan 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 catatan yang dikembalikan dari database. Ini karena kode kita cocok dengan sejumlah karakter di awal judul film dan hanya mendapat rekaman yang diakhiri dengan pola “kode”.
Sekarang mari kita geser wildcard persentase ke akhir pola yang ditentukan untuk dicocokkan. Skrip yang dimodifikasi ditunjukkan di bawah ini.
SELECT * FROM movies WHERE title LIKE 'code%';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
Perhatikan hanya satu catatan yang dikembalikan dari database. Ini karena kode kami cocok dengan semua judul yang dimulai dengan pola “kode” diikuti dengan sejumlah karakter.
_ menggarisbawahi karakter pengganti
Wildcard garis bawah digunakan untuk cocok dengan tepat satu karakter. Misalkan kita ingin mencari semua film yang dirilis pada tahun 200x di mana x adalah satu karakter yang dapat bernilai berapa pun. Kami akan menggunakan kartu liar garis bawah untuk mencapai hal itu. Script di bawah ini memilih semua film yang dirilis pada tahun “200x”
SELECT * FROM movies WHERE year_released LIKE '200_';
Menjalankan skrip di atas dalam MySQL meja kerja melawan 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 karakter yang diikuti pada tahun rilis lapangan yang dikembalikan dalam kumpulan hasil kami. Hal ini karena karakter pengganti garis bawah cocok dengan pola 200 yang diikuti oleh karakter mana 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. Kita akan menggunakan operator logika NOT bersama dengan karakter pengganti garis bawah untuk mendapatkan hasil. Berikut adalah skrip yang melakukannya.
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 bahwa hanya film yang tidak dimulai dengan angka 200 pada tahun perilisannya yang ditampilkan dalam kumpulan hasil kami. Ini karena kami menggunakan operator logika NOT dalam pencarian pola wildcard kami.
Kata kunci pelarian
Kata kunci ESCAPE digunakan untuk karakter pencocokan pola pelarian seperti persentase (%) dan garis bawah (_) jika merupakan bagian dari data.
Misalkan kita ingin memeriksa string “67%” yang dapat kita gunakan;
LIKE '67#%%' ESCAPE '#';
Jika kita ingin mencari film “67% Guilty”, kita bisa menggunakan script di bawah ini untuk melakukannya.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Perhatikan tanda “ganda”%%” pada 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
- Seperti & Wildcard alat hebat yang membantu pencarian data yang cocok dengan pola kompleks.
- Ada sejumlah wildcard yang menyertakan persentase, garis bawah, dan daftar karakter (tidak didukung oleh MySQL ) diantara yang lain
- Persentase wildcard digunakan untuk mencocokkan sejumlah karakter mulai dari nol (0) dan lebih.
- Wildcard garis bawah digunakan untuk mencocokkan tepat satu karakter.