MySQL CASE ifadesi, kontrol akış fonksiyonunun bir yazmamızı sağlayan bir parçasıdır. if-else veya if-then-else bir sorgunun mantığı. Bu ifade, SELECT, WHERE, ORDER BY cümleciği vb. gibi geçerli bir program veya sorgu kullanan her yerde kullanılabilir.
CASE ifadesi çeşitli koşulları doğrular ve ilk koşul sağlandığında sonucu döndürür. doğru . Koşul karşılandığında geçiş yapmayı durdurur ve çıktıyı verir. Eğer herhangi bir koşulu doğru bulamazsa çalıştırır. aksi takdirde bloke . else bloğu bulunamadığında bir değer döndürür. HÜKÜMSÜZ değer. Ana hedefi MySQL CASE deyimi, SELECT deyimindeki birden fazla IF deyimiyle ilgilenir.
CASE deyimini iki şekilde kullanabiliriz:
1. Basit CASE ifadesi:
İlk yöntem, aşağıda gösterildiği gibi bir değer alıp onu verilen ifadeyle eşleştirmektir.
fare ve fare türleri
Sözdizimi
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
İlk yapıldığında sonucu döndürür karşılaştırma_değeri karşılaştırma doğru olur. Aksi takdirde else cümleciğini döndürür.
Örnek
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Çıktı
Yukarıdaki komutu başarıyla uyguladıktan sonra aşağıdaki çıktıyı göreceğiz.
2. CASE ifadesinin aranması:
İkinci yöntem, bir konuyu dikkate almaktır. arama_koşulu içinde NE ZAMAN cümleciklerini kullanın ve eğer bulursa ilgili THEN cümleciğindeki sonucu döndürün. Aksi takdirde else cümleciğini döndürür. else cümleciği belirtilmezse NULL değeri döndürür.
Sözdizimi
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Örnek
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Çıktı
İade Türü
CASE ifadesi, kullanıldığı bağlama bağlı olarak sonucu döndürür. Örneğin:
python demetleri sıralama
- Dize bağlamında kullanılırsa dize sonucunu döndürür.
- Sayısal bağlamda kullanılırsa tam sayı, kayan nokta, ondalık değer döndürür.
MySQL sürüm desteği
CASE ifadesi aşağıdaki MySQL sürümlerini destekleyebilir:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
- MySQL 3.23.3
Bir tablo oluşturalım' öğrenciler ' ve bu tablodaki CASE deyimini gerçekleştirin.
Yukarıdaki tabloda şunu görüyoruz. sınıf sütunu Öğrenci bölümünün kısa formunu içerir. Bu nedenle bölümün kısa şeklini tam şekliyle değiştireceğiz. Şimdi bu işlemi gerçekleştirmek için aşağıdaki sorguyu yürütün.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Yukarıdaki sorguyu başarıyla çalıştırdıktan sonra aşağıdaki çıktıyı elde edeceğiz. Burada şunu görebiliyoruz. departman sütunu kısa form yerine tam formu içeriyor.