Like (layk diye okunur) kelimesinin buradaki anlamının “gibi” olduğunu en baştan bilirsek gerisini anlamamız çok daha kolay olacaktır.
LIKE işleci (operatörü) belirtilen özelliklere uygun metinlerin bulunması için kullanılan, oldukça faydalı ve sık kullanılan bir işleçtir. Bu yüzden konunun üzerinde ayrıntılı olarak duracağım.
SQL LIKE Sözdizimi (Syntax)
SELECT kolon_adı(ları) FROM tablo_adı WHERE kolan_adı LIKE desen (pattern)
Yukarıda geçen desen (pattern) kavramını örneklerden sonra daha iyi anlayacaksınız.
Not: Bu arada diğer SQL derslerine buradan ulaşabilirsiniz
Örnek sorgularımız için kullanacağımız Uyeler
tablosu:
uye_adi | isim | soyisim | e-posta | cinsiyet |
---|---|---|---|---|
hrzafer | Harun Reşit | Zafer | [email protected] | E |
derya.z | Derya | Zaimoğlu | [email protected] | K |
meryem1990 | Meryem | Arkadaş | [email protected] | K |
eaydin | Emir | Aydın | [email protected] | E |
denizeri | Levent | Denizeri | [email protected] | E |
Örnek-1: Soyadı “Z” harfi ile başlayan üyeleri seçmek istiyoruz
SELECT * FROM uyeler WHERE soyisim LIKE 'Z%'
Sorgumuzun çıktısı aşağıdaki gibi olacaktır:
uye_adi | isim | soyisim | e-posta | cinsiyet |
---|---|---|---|---|
hrzafer | Harun Reşit | Zafer | [email protected] | E |
derya.z | Derya | Zaimoğlu | [email protected] | K |
Burada desen olarak Z% ifadesini kullandık. Ve bu ifadeyi tek tırnak içerisinde yazdık. Bu desenin anlamı avamca “ilk harfi büyük Z olmalı gerisi ise herşey olabilir” demek.
Örnek-2: Adının son harfi “t” olan üyeleri seçelim:
SELECT * FROM uyeler WHERE isim LIKE '%t'
Sorgumuzun çıktısı aşağıdaki gibi olacaktır:
uye_adi | isim | soyisim | e-posta | cinsiyet |
---|---|---|---|---|
hrzafer | Harun Reşit | Zafer | [email protected] | E |
denizeri | Levent | Denizeri | [email protected] | E |
Örnek-3: İsminin içerisinde “er” ifadesi geçen üyeleri bulalım:
SELECT * FROM uyeler WHERE isim LIKE '%er%'
Sorgumuzun çıktısı aşağıdaki gibi olacaktır:
uye_adi | isim | soyisim | e-posta | cinsiyet |
---|---|---|---|---|
derya.z | Derya | Zaimoğlu | [email protected] | K |
meryem1990 | Meryem | Arkadaş | [email protected] | K |
‘%’ karakterinin sıfır, bir yada daha çok karakterin yerine geçebilen bir joker karakter (wildcard) olduğu herhalde örneklerden anlaşılmıştır.
Örnek-4: Şimdi de isminin içerisinde “er” ifadesi geçmeyen üyeleri bulalım:
SELECT * FROM uyeler WHERE isim NOT LIKE '%er%'
uye_adi | isim | soyisim | e-posta | cinsiyet |
---|---|---|---|---|
hrzafer | Harun Reşit | Zafer | [email protected] | E |
eaydin | Emir | Aydın | [email protected] | E |
denizeri | Levent | Denizeri | [email protected] | E |
Görüldüğü gibi NOT ifadesi seçimi tersine çevirmek için yeterli oluyor.
Buraya kadar LIKE operatörüne genel bir giriş yapmış olduk. Bir sonraki yazıda LIKE ile joker karakterlerin (wildcards) kullanımına ayrıntılı olarak bakacağız.
Herkese Kolay Gelsin
26 Kasım 2013 at 11:03
WHERE isim NOT LIKE ‘%er%’ : Bu koşul sorgusunda yani son örnekte 3 tane satırı gösterebildik, aslında NEDEN sadece Levent çıkmadı diye sorabilende olmuştur hocam, isterseniz ek olarak %xy% eğer 2 wildcard arasında en az 2 tane karakter varsa örneğin x ve y gibi.Bunları sorguladıktan sonra her ne şekilde olursa olsun dizilimde x ve y yanyana olmalı ve x in ynin her zaman arkasında sorgulama şekli gibi durduğunu belirtmek gerekir.Yani bu dizilimin de önemli olduğunu düşünüyorum.Aksi takdirde ‘Harun Reşit’ ve ‘Emir’ isimlerini de Not LİKE tabelasına aktarma yapmayacaktık.
Saygılar iyi çalışmalar.