Hoş Geldin, Mühendis!

Tüm mühendislerin ve mühendis adaylarının yer aldığı forum sayfamıza kayıt olmalısınız. Kayıt olduktan sonra tüm ders notlarına, teknik dokümanlara erişim sağlayabilecek, sorularınızı sorup cevaplar verebileceksiniz. Sitemiz tamamiyle ücretsiz olmakla birlikte Mühendis Puanı sistemi uygulamaktadır.

Bilgi paylaştıkça çoğalır.

Premium Abonelik 📢

Premium abonelik ile sitemizi reklamsız gezebilir, dosyaları sınırsızca indirebilirsiniz.

Daha Fazlası

[Muhendisiz.NET] Tekrar Sizlerleyiz! 🎭

Mühendisiz.NET sitesi forum ve blog sayfası olarak tekrar yayın hayatına başladı. 🤩 Sizlerde forum sayfamıza üye olabilir ve mühendis topluluğumuza katılabilirsiniz.

Daha Fazlası

Mühendis Puanı Sistemi🏆

Bilgi paylaştıkça çoğalır felsefesini benimsemiş olmamız nedeniyle Mühendis Puanı sistemini uygulamaya aldık. Dökümanları indirebilmek için bazı paylaşımlarda bulunmalısınız. 📨

Daha Fazlası
  • Dosya indirebilmek için 2 Mühendis Puanına ihtiyacınız var. Konuya yorum atarak 1 MP Not paylaşarak 6 MP kazanırsınız.
    Bilgi Paylaştıkça Çoğalır. (Mühendislik Puanı (MP) Nedir?)
  • Mühendis Puanı kazanmaya vakti olmayanlar için ücretli premium üyelik sistemi aktif edilmiştir.
    (Premium Üyelik SATIN AL)

MySQL Case When Kullanımı

turkmedia

Moderatör
Katılım
8 Ara 2022
Mesajlar
760
Mühendis Puanı
1,612
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.

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 ifadesine benzemektedir.

CASE KOŞUL_DEĞER
WHEN DURUM-1 THEN
-- komutlar - 1
WHEN DURUM-2 THEN
-- komutlar - 2
ELSE
-- komutlar - N
END CASE;
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.

yazısında yer alan işlemleri CASE WHEN kullanarak yapalım.

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;
Ö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.

Saklı yordamlar içerisinde CASE WHEN kullanımı ile ilgili örnek aşağıdadır.

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 ;
Yazılan saklı yordamı çalıştıralım.

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;
Hayırlı günler dilerim.
 

Son kaynaklar