MYSQL

MySql IN Kullanımı

Bu derste, belirtilen bir değerin bir değerler listesindeki herhangi bir değerle eşleşip eşleşmediğini belirlemek için MySQL IN operatörünün nasıl kullanılacağını öğreneceksiniz.

MySQL IN operatörüne giriş

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.

SELECT *FROM ogrenciWHERE sinif IN (’10A’,’10B’,’11A’)

Örnek 2: Yazar adı Ahmet, Hülya, Pınar ve Kemal olmayan yazarları listeleyin

SELECT *FROM yazarWHERE yazarad NOT IN (‘Ahmet’,’Hülya’,’Pınar’,’Kemal’)

Örnek 3: Türü ROMAN, HİKAYE, ARAŞTIRMA olan kitapları listeleyin.

SELECT *FROM kitapWHERE 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.

Yorum yap