CASE Deyimi :
CASE kullanım şekli aşağıdaki gibidir :
SELECT alan1, alan2,
CASE alan3
WHEN 'deger1' THEN 'deger1a'
..
..
WHEN 'degern' THEN 'degerna'
ELSE 'ön tanımlı değer'
END
FROM tablo
Şimdi
kitaplar isimli bir tablo oluşturalım :
Aşağıdaki gibi sorgumuzu yazalım.
Her bir durumu tek tek tanımlamak zor olabilir, bunun yerine karşılaştırma yapabiliriz, popularitesi 8 den büyükse popüler, 8-5 arasıysa okunmalı, 5 den küçükse gözden kaçmış diyebiliriz.
Bu sorguda iki önemli nokta var;
- CASE kelimesi alan isminden sonra yazılır, karşılaştırma yaparken kullanabilmek için, yani "SELECT isim CASE popularite" değilde "SELECT isim,popularite CASE.. " dedik.
- Karşılaştırma yaparken aralık belirtmek için AND kullandık.
IF Koşul Deyimi :
IF kosul_ifadesi1 THEN
komutlar1
[ELSEIF kosul_ifadesi2 THEN]
komutlar2
[ELSE]
komutlar3
END IF;
Yukarıdaki kodda kosul_ifadesi1 sonucu TRUE dönerse komutlar1 çalıştırılır.kosul_ifadesi1 sonucu FALSE dönüp kosul_ifadesi sonucu TRUE dönerse komutlar2 çalıştırılır ve nihayet iki kosul ifadesininde sonucu TRUE dönmezse ELSE bölümündeki komutlar3 çalıştırılır.
IF kullanım şekli aşağıdaki gibidir :
IF(koşul, doğruysa bu değeri al, yanlışsa bu değeri al)
“Kategoriler” isminde ve id, ad, durum kolonlarından oluşan bir tablomuz olsun. Burada “durum” isimli kolonumuzun kategorinin “Aktif” veya “Pasif” durumunu temsil ettiğini düşünebilirsiniz. (Eğer kategori 0 ise yayında gözükmesin, 1 ise yayında gözüksün vb.) Bu tabloyu yönetim panelinde listelerken kategori adının ve durumunun listelenmesi gerekir. Bunun için durumu tablodan 0,1 gibi integer değerler ile alıp php vb. dilde if yazmak yerine biz direk mysql’den “Aktif” veya “Pasif” şeklinde alacağız.
Tablomuz aşağıdaki gibi olacaktır :
IFNULL Koşul Deyimi :
IFNULL (ifade,değer)
Kural 1-) "ifade" NOT NULL ise IFNULL fonksiyonu "ifade" dönecektir.
Kural 2-)"ifade" NULL ise IFNULL fonksiyonu "değer" dönecektir.
Aşağıdaki örnekleri inceleyelim :
=>
=>
=>
NULLIF Koşul Deyimi :
NULLIF (ifade,değer)
Kural 1-) "ifade" ile "değer" birbirine eşitse NULL sonuç olarak dönecektir.
Kural 2-) "ifade" ile "değer" birbirine eşit değilse sonuç olarak "ifade" dönecektir.
Aşağıdaki örnekleri inceleyelim :
=>
=>
=>