MySQL Joker Karakter Eğitimi: Beğen, Beğenme, Kaçış, ( % ), ( _ )
All ON XNUMX İmplant Tedavisi Nasıl Uygulanır? MySQL Joker karakterler mi?
MySQL Joker karakterler karmaşık ölçütlerle eşleşen verileri aramaya yardımcı olan karakterlerdir. Joker karakterler LIKE karşılaştırma operatörü veya NOT LIKE karşılaştırma operatörü ile birlikte kullanılır.
WildCard'ları neden kullanmalıyım?
SQL'i kullanmaya aşinaysanız, SELECT ve WHERE ifadesini kullanarak herhangi bir karmaşık veriyi arayabileceğinizi düşünebilirsiniz. O zaman neden Joker Karakterler kullanıyorsunuz?
Bu soruyu cevaplamadan önce bir örneğe bakalım. Diyelim ki Myflix video kütüphanesinin pazarlama departmanı Teksas şehrinde pazarlama promosyonları yürütüyor ve üye sayısı hakkında geri bildirim almak istiyor
Texas'tan kayıtlıysanız, istediğiniz bilgiye ulaşmak için WHERE ifadesiyle birlikte aşağıdaki SELECT ifadesini kullanabilirsiniz.
SELECT * FROM members WHERE postal_address = 'Austin , TX' OR postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';
Yukarıdaki sorgudan da görebileceğiniz gibi, “WHERE yan tümcesi” karmaşık hale gelir. Ancak joker karakterler kullanmak, aşağıda gösterilen betik gibi basit bir şey kullanabileceğimizden sorguyu basitleştirir.
SELECT * FROM members WHERE postal_address like '% TX';
Kısacası joker karakterler, veri odaklı uygulamalarımıza güçlü arama motorları geliştirmemize olanak tanır.
Joker karakter türleri
% yüzde
% yüzde karakteri bir deseni belirtmek için kullanılır sıfır (0) veya daha fazla karakter. Aşağıdaki temel söz dizimine sahiptir.
SELECT statements... WHERE fieldname LIKE 'xxx%';
İŞTE
- "SELECT ifadesi..." standart SQL SELECT komutudur.
- Filtreyi uygulamak için kullanılan anahtar kelime “NEREDE”dir.
- “LIKE” joker karakterlerle birlikte kullanılan karşılaştırma operatörüdür
- 'xxx', tek bir karakter veya daha fazlası gibi belirtilen herhangi bir başlangıç düzenidir ve “%”, sıfırdan (0) başlayan herhangi bir sayıda karakterle eşleşir.
Yukarıdaki ifadeyi tam olarak anlamak için pratik bir örneğe bakalım
Başlığında "kod" kelimesi bulunan tüm filmleri almak istediğimizi varsayalım, "kod" kelimesinin her iki yanında bir kalıp eşleşmesi gerçekleştirmek için yüzde joker karakterini kullanırız. İstenilen sonuçları elde etmek için kullanılabilecek SQL ifadesi aşağıdadır.
SELECT * FROM movies WHERE title LIKE '%code%';
Yukarıdaki betiğin çalıştırılması MySQL tezgâh myflixdb'ye karşı bize aşağıda gösterilen sonuçları verir.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
7 | Davinci Code | NULL | NULL | 6 |
Başlığın başında veya sonunda "kod" arama anahtar kelimesi görünse bile sonuç kümemizde döndürüldüğüne dikkat edin. Bunun nedeni, kodumuzun başlangıçta herhangi bir sayıda karakter içermesi ve ardından, sonunda herhangi bir sayıda karakterin takip ettiği "kod" kalıbıyla eşleşmesidir.
Şimdi yukarıdaki komut dosyamızı, yalnızca arama kriterlerinin başında yüzde joker karakterini içerecek şekilde değiştirelim.
SELECT * FROM movies WHERE title LIKE '%code';
Yukarıdaki betiğin çalıştırılması MySQL myflixdb'ye karşı çalışma tezgahı bize aşağıda gösterilen sonuçları verir.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
7 | Davinci Code | NULL | NULL | 6 |
Veritabanından yalnızca bir kaydın döndürüldüğüne dikkat edin. Bunun nedeni, kodumuzun film başlığının başlangıcındaki herhangi bir sayıda karakterle eşleşmesi ve yalnızca "kod" kalıbıyla biten kayıtları almasıdır.
Şimdi yüzde joker karakterini, eşleştirilecek belirtilen modelin sonuna kaydıralım. Değiştirilen komut dosyası aşağıda gösterilmiştir.
SELECT * FROM movies WHERE title LIKE 'code%';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
Veritabanından yalnızca bir kaydın döndürüldüğüne dikkat edin. Bunun nedeni, kodumuzun "kod" kalıbıyla başlayan ve ardından herhangi bir sayıda karakter gelen tüm başlıklarla eşleşmesidir.
_ alt çizgi joker karakteri
Alt çizgi joker karakteri şu amaçlarla kullanılır: tam olarak bir karakterle eşleş. X'in tam olarak herhangi bir değer olabilecek bir karakter olduğu 200x yılında vizyona giren tüm filmleri aramak istediğimizi varsayalım. Bunu başarmak için alt çizgi joker karakterini kullanırdık. Aşağıdaki senaryo “200x” yılında vizyona giren tüm filmleri seçmektedir.
SELECT * FROM movies WHERE year_released LIKE '200_';
Yukarıdaki betiğin çalıştırılması MySQL myflixdb'ye karşı çalışma tezgahı bize aşağıda gösterilen sonuçları verir.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
9 | Honey mooners | Jhon Shultz | 2005 | 8 |
Sonuç setimizde yalnızca yayınlandığı yıldaki herhangi bir karakterin 200 takipçisi olan filmlerin döndürüldüğüne dikkat edin. Bunun nedeni, alt çizgi joker karakterinin, ardından herhangi bir tek karakterin geldiği 200 modeliyle eşleşmesidir.
Gibi değil
NOT mantıksal operatörü, belirtilen kalıpla eşleşmeyen satırları döndürmek için joker karakterlerle birlikte kullanılabilir.
Diyelim ki 200x yılında vizyona girmeyen filmleri almak istiyoruz. Sonuçlarımızı elde etmek için NOT mantıksal operatörünü alt çizgi joker karakteriyle birlikte kullanırız. Bunu yapan script aşağıdadır.
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 |
Sonuç setimize yalnızca yayınlandığı yılda 200 ile başlamayan filmlerin döndürüldüğüne dikkat edin. Bunun nedeni, joker karakter deseni aramamızda NOT mantıksal operatörünü kullanmamızdır.
Anahtar kelimeden kaçış
ESCAPE anahtar sözcüğü şu amaçlarla kullanılır: kaçış deseni eşleşen karakterler (%) yüzdesi ve alt çizgi (_) gibi, eğer verinin bir parçasını oluşturuyorlarsa.
Diyelim ki kullanabileceğimiz “67%” stringini kontrol etmek istiyoruz;
LIKE '67#%%' ESCAPE '#';
Eğer “67% Guilty” filmini aramak istersek bunu yapmak için aşağıda gösterilen scripti kullanabiliriz.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Çift "'e dikkat edin%LIKE cümleciğindeki %”, ilki kırmızı “%” aranacak dizenin bir parçası olarak kabul edilir. Diğeri ise takip eden herhangi bir sayıdaki karakteri eşleştirmek için kullanılır.
Aynı sorgu şunun gibi bir şey kullanırsak da işe yarayacaktır:
SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';
ÖZET
- Beğen ve Jokerler karmaşık desenlerle eşleşen verileri aramanıza yardımcı olan güçlü araçlardır.
- Yüzdeyi, alt çizgiyi ve karakter listesini içeren çok sayıda joker karakter vardır (tarafından desteklenmez). MySQL ) diğerleri arasında
- Yüzde joker karakteri, sıfırdan (0) başlayan ve daha fazla sayıda karakteri eşleştirmek için kullanılır.
- Alt çizgi joker karakteri tam olarak bir karakterle eşleşmek için kullanılır.