SQL LIKE komutu, bir sütundaki belirli bir veriyi aramak için bir WHERE koşuluyla kullanılır.
Genellikle LIKE komutu ile birlikte kullanılan iki joker karakter vardır:
%- Yüzde işareti sıfır, bir veya birden çok karakteri temsil eder.
_ - Alt çizgi tek bir karakteri temsil eder.
SQL LIKE kullanımı şu şekildedir.
SELECT sütun1, sütun2, ...
FROM tablo_adi
WHERE sütunN LIKE şablon;
NOT: Yukarıda anlaşılır olması için türkçe karakter kullanılmıştır.Kod yazımlarında Türkçe karakter kullanmayınız.
Ayrıca AND ve OR operatörleri kullanılarak birden fazla koşulu birlieştirebiliriz.
Aşağıda, farklı LIKE komutlarının ‘%’ ve ‘_’ joker karakterleriyle gösterilmiş örnekler vardır.
LIKE komutları |
Açıklama |
WHERE Soyad LIKE 'a%' |
“a” ile başlayan tüm verileri bulur. |
WHERE Soyad LIKE '%a' |
“a” ile biten tüm verileri bulur. |
WHERE Soyad LIKE '%or%' |
Herhangi bir konumda “or” bulunan verileri bulur. |
WHERE Soyad LIKE '_r%' |
İkinci konumda “r” bulunan tüm verileri bulur. |
WHERE Soyad LIKE 'a_%' |
“a” ile başlayan ve en az 2 karakter uzunluğunda olan tüm verileri bulur. |
WHERE Soyad LIKE 'a__%' |
“a” ile başlayan ve en az 3 karakter uzunluğunda olan tüm verileri bulur. |
WHERE Soyad LIKE 'a%o' |
“a” ile başlayan ve “o” ile biten tüm verileri bulur. |
Örnek veritabanı üzerinde gösterelim.
KullaniciID |
Ad |
Soyad |
Adres |
Sehir |
Postakodu |
Ulke |
1 |
Safa |
Dedeoğlu |
Necmettin Erbakan Cad. no 8/1 |
İstanbul |
34000 |
Türkiye |
2 |
Fatih |
Turab |
İskele Cad. hastane sok. |
Artvin |
08300 |
Türkiye |
3 |
John |
Doupoint |
Claremont Rd no:8/3 |
Newcastle |
NE2 4AA |
İngiltere |
4 |
Gustavo |
Alfaro |
Cuero y Caicedo, Quito |
New York |
170129 |
Amerika |
5 |
Abel |
Gigli |
Dagmada Waaberi 324/5 |
Moskova |
Jh09010 |
Rusya |
6 |
Xiao |
Chu |
Unnamed Road |
Pekin |
Jk07320 |
Çin |
7 |
Osman |
Ebuselim |
Shara Zaviya Dahmani PO:928 |
Doha |
243512 |
Katar |
8 |
Frank |
Walter |
Trudering-Riem 326/3 |
Münih |
81825 |
Almanya |
Aşağıda SQL komutu “a” ile başlayan Musteriler tablosundaki isimleri bulur.
SELECT * FROM Musteriler
WHERE Ad LIKE 'a%';
Sonuç çıktısı:
5 |
Abel |
Gigli |
Dagmada Waaberi 324/5 |
Moskova |
Jh09010 |
Rusya |
Aşağıda SQL komutu “a” ile biten Musteriler tablosundaki isimleri bulur.
SELECT * FROM Musteriler
WHERE Ad LIKE '%a';
Sonuç çıktısı:
1 |
Safa |
Dedeoğlu |
Necmettin Erbakan Cad. no 8/1 |
İstanbul |
34000 |
Türkiye |
Aşağıda SQL komutu herhangi bir konumda “at” harfleri bulunan Musteriler tablosundaki isimleri bulur.
SELECT * FROM Musteriler
WHERE Ad LIKE '%at%';
Sonuç çıktısı:
2 |
Fatih |
Turab |
İskele Cad. hastane sok. |
Artvin |
08300 |
Türkiye |
Aşağıda SQL komutu ikinci konumda “r” bulunan tüm verileri bulur.
SELECT * FROM Musteriler
WHERE Ad LIKE '_r%';
Sonuç çıktısı:
8 |
Frank |
Walter |
Trudering-Riem 326/3 |
Münih |
81825 |
Almanya |
Seçili koşulları bulmak gibi koşulları sağlamayan verileri bulmakta mümkündür. Bunu sağlayan SQL komut dizisi aşağıdadır.
Aşağıda SQL komutu “a” ile başlamayan Musteriler tablosundaki isimleri bulur.
SELECT * FROM Musteriler
WHERE Ad NOT LIKE 'a%';
İçerik: Yusuf Erdoğan