Merhaba arkadaşlar bu yazımda sizlere Verilerde Arama işleminde kullanılan 2 adet sözcük olan LIKE ve IN sözcüklerinin kullanımından bahsedeceğim.

LIKE Sözcüğü

LIKE sözcüğü bir sütunun içindeki bir harfi ve ya bir sözcüğü ararken kullanabileceğimiz gayet kullanışlı bir sözcüktür şimdi önce örnek tablomuzun içeriğini göstericeğim daha sonra LIKE kullanımından bahsetmeye başlayacağım.

calisanlar tablosu

Şimdi bu tablodaki sehir sütununda ki verilerin içinde a karakteri olanları listelemek istiyorsam şu sorguyu yazmam gerekiyor

SELECT * FROM calisanlar WHERE sehir LIKE '%a%';

Burada önemli olan kısım “%a%” kısmı burada % işaretinin anlatmak istediği şey önünde olan harf ve ya cümler yani %a% yazdığımız zaman içinde a harfinin geçmesi yeterli. Yukarıdaki sorgu çalıştıktan sonra oluşan sanal tablo ise şu şekildedir.

Peki sadece son harfi a olanları listelemek isteseydik nasıl bir sorgumuz olurdu diye sorarsanız.

SELECT * FROM calisanlar WHERE sehir LIKE '%a';

şeklinde olurdu bu sefer sehirin İstanbul olduğu veriler kalkardı çünkü İstanbul kelimesinin için de a harfi olsa bile son harfi değil

Aynı şekilde a% olarak değiştirirsek de ilk harfi a olan sehirleri gösterecektir.

IN Kullanımı

IN ise WHERE ile 1 sütun üzerinde 1 den fazla kriterimiz varsa uzun uzadıya yazmaktansa işlerimizi kolaylaştırmak için kullanabileceğimiz bir sözcüktür. Şimdi bu örnek için kullanıcağımız örnek tabloyu size göstermek gerekirse

users tablosu

Şimdi ben bu tablo da sadece id’si 4,10 ve 13 olan kullanıcıları seçmek istiyorum şu şekilde bir sorgu yazabiliriz.

SELECT * FROM users WHERE id = 4 AND id = 10 AND id = 13;

belki 3 veri için bu çok zor değil ama 100 tane veri için bu işlemi yapmayı düşünürsek gerçekten sıkıntı olabiliyor. Bunun yerine IN kullanarak kolayca işimizi halledebiliyoruz.

SELECT * FROM users WHERE id IN (4,10,13);

ve ya ben id si 4,10 ve 13 olmayanları seçmek istiyorsam

SELECT * FROM users WHERE id NOT IN (4,10,13);

şeklin de sorgumu yazabiliyorum ayrıca bu parantezler içine başka bir tablodan veri çekme işlemi de yazabiliriz yani diyelim ki bazı mail adresleri bizim sistemimizde yasaklı yani üye olmaları yasak ama üye olmuşlar bu kullanıcıları tespit etmek için şöyle bir sorgu yazabilirdik.

SELECT * FROM users WHERE mail IN (SELECT yasakli_mail FROM yasaklimail);

yani burada yapacağı işlem şu yasaklimail adlı tablonun yasakli_mail isimli sütunundaki verilerin users tablosunda ki mail sütunundaki verilerle aynı olanlarını bize geri döndürecek.

Özet,

Bu yazımda sizlere Verilerde Arama yapmamızı sağlayan 2 sözcük olan LIKE ve IN sözcüklerinin kullanımından bahsettim. LIKE ile bir sütun üzerinde sadece bir harf ve ya bir sözcük arayabileceğimizi ve IN ile de sürekli olarak AND gibi sözcükleri kullanarak uzun uzun sorgular yazmamızı engellediğinden bahsettik.

Bir sonraki yazımda Verilerde Arama da son bir sözcük olan FIND_IN_SET’in kullanımından bahsedeceğim. O zamana kadar MySQL hakkında yazdığım diğer yazıları okumak için buraya tıklayınız.