MySQL içerisinde if fonksiyonu ve if deyimine alternatif olarak kullanılan, CASE deyimi ile bir koşula veya değere göre istenilen komutlar çalıştırılabilir.
Ayrıca
Saklı yordamlar içerisinde CASE WHEN kullanımı ile ilgili örnek aşağıdadır.
MySQL CASE WHEN
MySQL CASE WHEN ifadesi ile bir değerin farklı değer alabileceği durumların kontrolü için kullanılır.Ayrıca
Konuya eklenmiş linkleri görmek için kayıt olmalısınız.
ifadesine benzemektedir.MySQL CASE ifadesi içerisindeki KOŞUL_DEĞER ifadesi bir koşul alırsa WHEN ifadesine true ve false ile kontrol sağlanır, bir değer alırsa WHEN ifadesine değerin alabileceği değerler yazılarak kontrol sağlanır.CASE KOŞUL_DEĞER
WHEN DURUM-1 THEN
-- komutlar - 1
WHEN DURUM-2 THEN
-- komutlar - 2
ELSE
-- komutlar - N
END CASE;
Konuya eklenmiş linkleri görmek için kayıt olmalısınız.
yazısında yer alan işlemleri CASE WHEN kullanarak yapalım.Örnekte kat_id değeri 1 ise Bilgisayar, 2 ise Telefon, 3 ise Elektronik ve bu değerlerden başka bir ifade ise Kategorisi yok ifadesini sonuc sütununa yazdıracaktır.SELECT (CASE 5 > 6
WHEN FALSE THEN "6 BÜYÜK"
WHEN TRUE THEN "5 BÜYÜK"
END) AS sonuc;
MySQL CASE WHEN ifadesini kullanarak urunler tablosunda yer alan kat_id sütuna göre işlem yapalım.
SELECT *, (CASE kat_id
WHEN 1 THEN "Bilgisayar"
WHEN 2 THEN "Telefon"
WHEN 3 THEN "Elektronik"
ELSE "Kategorisi yok"
END) AS sonuc FROM urunler;
Saklı yordamlar içerisinde CASE WHEN kullanımı ile ilgili örnek aşağıdadır.
Yazılan saklı yordamı çalıştıralım.DELIMITER //
CREATE PROCEDURE AdiSoyadiBul(IN sayi INT, OUT durum VARCHAR(50))
BEGIN
CASE sayi
WHEN 1 THEN
SET durum = 'Yusuf';
WHEN 2 THEN
SET durum = 'SEZER';
WHEN 3 THEN
SET durum = 'Yusuf SEZER';
ELSE
SET durum = 'Yusuf Sefa SEZER';
END CASE;
END//
DELIMITER ;
Hayırlı günler dilerim.SET @sonuc = 0;
CALL AdiSoyadiBul(3, @sonuc);
SELECT @sonuc;
Saklı yordam çalıştırıldığında Yusuf Sefa SEZER değerini @sonuc değişkenine atayacaktır.
MySQL CASE WHEN ifadesi ayrıca CASE ifadesine koşul veya değer yazılmadan da gibi kullanılır.
SELECT *, (CASE
WHEN kat_id = 1 THEN "Bilgisayar"
WHEN kat_id = 2 THEN "Telefon"
WHEN kat_id = 3 THEN "Elektronik"
ELSE "Kategorisi yok"
END) AS sonuc FROM urunler;