Sql İle Like Kullanımı


21 Ağustos 2012 Hikmet Okumuş Microsoft SQL Server

Like ifadesi ile daha çok bir alan içerisinde arama yapılmaktadır. Örnek olarak bu bloğun arama kısmını gösterebiliriz. Herhangi bir makalenin içerisinde geçen bir kelimeyi ya da harfi yazdığınızda eşleşen tüm sonuçları listeleyecektir.
SELECT * FROM Kullanicilar
WHERE KullaniciAdi LIKE 'Hikmet'
Yukarıdaki şekilde like kullanımı aslında where ile sorgulama ile aynı mantıkla çalışmaktadır. KullaniciAdi alanının aranılan kelime ile tam olarak eşit olması gerekmektedir.
Yukarıdaki örnek üzerinden devam edelim. Arama yapacağımız alanın sadece başlangıç değerini biliyoruz gerisini tam olarak bilmiyoruz.
SELECT * FROM Kullanicilar
WHERE KullaniciAdi LIKE 'H%'
% işareti H harfi ile başlayan tüm kayıtları bize listeler. Kayıtların sadece H harfi ile başlaması gerekmektedir. Tam tersi olarak sonu T harfi ile biten kayıtları listelemek isteyebiliriz.
SELECT * FROM Kullanicilar
WHERE KullaniciAdi LIKE '%t'
Burada da % işaretini baş tarafa yazmış olduk. Bu sorgu ile sonu t harfi ile biten tüm kayıtlar listelenecektir. Başlangıç değeri ya da bitiş değerine göre değilde içerisinde geçen bir değere göre arama yapmak isteyebilirsiniz. Bunun için arama yapacağınız harf ya da kelimenin başına ve sonuna % ifadesini koymamız gerekecetir.
SELECT * FROM Kullanicilar
WHERE KullaniciAdi LIKE '%kme%'
Eğer aranılan alan içerisinde herhangi bir yerde bu değer geçiyorsa o kayıtları bize listeleyecektir. Aramak istediğimiz değerin 2. harfini biliyoruz fakat 1. harfi herhangi bir harf olabilir.
SELECT * FROM Kullanicilar
WHERE KullaniciAdi LIKE '_i%'
_ işareti ile birinci harfin herhangi bir harf olabileceğini belirttik. 2. harfimizin i harfi olduğunu söyledik. Bu şekilde belirli bir karaktere göre arama yapabilmekteyiz. Hep bir alanın içerisinde aynı değer varsa ya da içeriyorsa o satırları görüntüleyecek sorguları yazdık. 10 satır kaydımız olsun ve bu 10 satır içinde sadece belirli harfler geçen satırların gelmesini istiyoruz.
SELECT * FROM Kullanicilar
WHERE KullaniciAdi LIKE '%[kaAo]%'
'%[kaAo]%' Kullanicilar alanı içerisinde bu harflerden birine sahip olan satırlar listelenecektir. Yer alan satırların listelenmemesi için aşağıdaki şekilde ^ ifadesini kullanmamız gerekecektir.
SELECT * FROM Kullanicilar
WHERE KullaniciAdi LIKE '[^A-H]%'

Başarılar dilerim.



Yorum Ekle