MySQL IN Operatörü
Özet: bu eğiticide, belirtilen bir değerin bir listedeki veya alt sorgudaki herhangi bir değerle eşleşip eşleşmediğini belirlemek için MySQL IN operatörünü nasıl kullanacağınızı öğreneceksiniz.
MySQL IN Operatörüne Giriş
IN işleci, belirli bir değerin bir değer kümesindeki herhangi bir değerle eşleşip eşleşmediğini veya bir alt sorgu tarafından döndürülmesini belirlemenizi sağlar.
Aşağıdaki IN operatörünün sözdizimini gösterir:
1 2 3 4 5 6 7 8 |
SELECT sutun1,sutun2,... FROM tablo_adı WHERE (expr|sutun_adi) IN ('deger1','deger2',...); |
Sorguyu daha ayrıntılı olarak inceleyelim:
- WHERE yan tümcesinde IN işleciyle bir sütun veya ifade (expr) kullanın.
- Listedeki değerleri virgül (,) ile ayırın.
IN operatörü, sütununun değeri veya ifade ifadesinin sonucu listedeki herhangi bir değere eşitse 1, aksi takdirde 0 değerini döndürür.
Listedeki değerlerin tümü sabit olduğunda, MySQL aşağıdaki adımları yerine getirir:
- İlk olarak, sutun1 türüne veya expr ifadesinin sonucuna göre eşleşen değerleri değerlendir.
- İkincisi, değerleri sıralar.
- Üçüncüsü, ikili arama algoritmasını kullanarak değeri arar. Bu nedenle, IN işlecini bir sabit listesiyle kullanan sorgu çok hızlı bir şekilde gerçekleşir.
NOT: İfade ya da listedeki herhangi bir değer NULL ise, IN işlecinin NULL döndürdüğünü unutmayın.
Bir değerin listedeki veya alt sorgudaki herhangi bir değerle eşleşip eşleşmediğini belirlemek için IN işlecini NOT işleci ile birleştirebilirsiniz. Ayrıca IN operatörünü, UPDATE ve DELETE gibi diğer ifadelerin WHERE yan tümcesinde kullanabilirsiniz.
MySQL IN
operator Örnekleri
Örnek 1: sınıfı 10A,10B,11A olan öğrencilerin bilgilerini listeleyin.
1 2 3 4 5 6 7 8 |
SELECT * FROM ogrenci WHERE sinif IN ('10A','10B','11A') |
Örnek 2: Yazar adı Ahmet, Hülya, Pınar ve Kemal olmayan yazarları listeleyin
1 2 3 4 5 6 7 8 |
SELECT * FROM yazar WHERE yazarad NOT IN ('Ahmet','Hülya','Pınar','Kemal') |
Örnek 3: Türü ROMAN, HİKAYE, ARAŞTIRMA olan kitapları listeleyin.
1 2 3 4 5 6 7 8 9 |
SELECT * FROM kitap WHERE turno IN (SELECT turno FROM tur WHERE turad IN ('ROMAN', 'HİKAYE', 'ARAŞTIRMA')) |
Not: yukarıdaki sorgu IN operatörünün en geniş kullanım şeklidir. IN ifadesinin ile alt sorgu kullanılıyorsa SADECE 1 TANE ALAN eşleştirilmelidir. Burada turno alanları eşleştirilmiştir.
1 Yorum