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.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!