MySQL IF Kullanımı
Yazıda MySQL VTY sisteminde komut akışını koşula göre yönlendirmek için kullanılan if, elseif ve else kullanımı ile ilgili bilgiler yer almaktadır.
Programlama dillerinde kullanılan if ifadesi MySQL içerisinde belirli bir koşula veya değere göre SQL komutlarını çalıştırmayı sağlar.
MySQL IF fonksiyonu
MySQL if fonksiyonu ve if deyimi olmak üzere iki if ifadesini kullanmayı sağlar.
MySQL if fonksiyonu SQL komutları içerisinde kullanılır. Programlama dillerindeki ternary operator ifadesine benzer.
IF(KOŞUL, DOĞRU, YANLIŞ)
MySQL IF fonksiyonunun ilk parametresine yazılan koşul doğruysa DOĞRU parametresi, yanlışsa YANLIŞ parametresi çalıştırır.
MySQL IF fonksiyonunun kullanımı;
SELECT IF(5 > 6, "5 büyük", "6 büyük") AS sonuc;
IF fonksiyonu ayrıca tablo sorgularında da kullanılır.
SELECT *, IF( urun_fiyat > 30, "PAHALI", "UYGUN") AS sonuc FROM urunler;
Sorguda urunler tablosu urun_fiyat sütunundaki fiyat 30’dan büyükse PAHALI küçükse UYGUN değerini sonuc sütununa yazdıracaktır.
MySQL IF fonksiyonu içerisinde SQL fonksiyonları da kullanılabilir.
SELECT *, IF( LENGTH(urun_adi) > 10, "UZUN", "KISA") AS sonuc FROM urunler;
Sorguda urunler tablosu urun_adi sütunundaki ürün adı uzunluğu 10 karakterden büyükse UZUN küçükse KISA değerini sonuc sütununa yazacaktır.
MySQL IF-ELSEIF-ELSE deyimi
MySQL Saklı Yordamlar içerisinde değerleri kontrol etmek için if, elseif ve else ifadelerini kullanmayı sağlar.
MySQL if kullanımı;
IF KOŞUL THEN
-- komutlar
END IF;
MySQL elseif kullanımı;
IF KOŞUL THEN
-- komutlar
ELSEIF KOŞUL2 THEN
-- komutlar2
END IF;
IF içerisindeki KOŞUL yanlışsa VE ELSEIF içerisindeki KOŞUL2 doğruysa komutlar2 alanına yazılan komutlar çalıştırılır.
MySQL else kullanımı;
IF KOŞUL THEN
-- komutlar
ELSE
-- komutlar
END IF;
veya
IF KOŞUL THEN
-- komutlar
ELSEIF KOŞUL2 THEN
-- komutlar2
...
ELSE
-- komutlar3
END IF;
Tüm IF ve ELSEIF koşulları yanlışsa ELSE alanına yazılan komutlar3 çalıştırılır.
Saklı yordamlar içerisinde if, elseif ve else kullanımı ile ilgili örnek aşağıdadır.
DELIMITER //
CREATE PROCEDURE AdiSoyadi(IN sayi INT, OUT durum VARCHAR(50))
BEGIN
IF sayi = 1 THEN
SET durum = 'Yusuf';
ELSEIF sayi = 2 THEN
SET durum = 'SEZER';
ELSEIF sayi = 3 THEN
SET durum = 'Yusuf SEZER';
ELSE
SET durum = 'Yusuf Sefa SEZER';
END IF;
END//
DELIMITER ;
Örnekte AdiSoyadi saklı yordamı sayi parametresine göre durum parametresine dönüş değerleri yazmaktadır.
Parametre olarak gönderilen sayi parametresi değeri 1 ise durum parametresi Yusuf, 2 ise SEZER, 3 ise Yusuf SEZER hiçbiri değilse Yusuf Sefa SEZER değerini alır.
Saklı yordamı çalıştıralım.
SET @sonuc = 0;
CALL AdiSoyadi(99, @sonuc);
SELECT @sonuc;
Saklı yordam çalıştırıldığında Yusuf Sefa SEZER değerini @sonuc değişkenine atayacaktır.
Hayırlı günler dilerim.