MySQL'de if kullanımı, örnekleri

MySQL'de if kullanımı Excel'deki gibi. Tek bir koşul yazıp doğruysa bunu, yanlışsa bunu yaz diyebiliyorsunuz. true ve false kısmında tekrar iç if'ler de açılabiliyor.

Kullanımı :

if(kosul, dogruysa, yanlissa)

 

Örnek 1 :

Üyeler tablosunda cinsiyet field'ını rakamsal (tinyint vs);  bay 0, bayan 1 olarak verileri tutulan bir tablodan cinsiyeti direk cinsiyet ismi olarak almak için aşağıdaki gibi bir kod yazmanız gerekir.

select *. if(cinsiyet = 0, 'Bay', 'Bayan) as cinsiyet from uyeler

Yukarıdaki kodu kısaca açıklayacak olursak: cinsiyet değerini kontrol edip, cinsiyet field'ına; sıfırsa "Bay", birse "Bayan" olarak data döndürür.

 

Örnek 2 :

 +-----------------+------------------+------+-----+---------+----------------+
| Field           | Type             | Null | Key | Default | Extra          |
+-----------------+------------------+------+-----+---------+----------------+
| id              | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| ad              | varchar(200)     | NO   |     | NULL    |                |
| fiyat           | float unsigned   | NO   |     | 0       |                |
| indirimli_fiyat | float unsigned   | NO   |     | 0       |                |
+-----------------+------------------+------+-----+---------+----------------+

Yukarıdaki örnek ürünler tablosunu oluşturarak içine 10-15 tane veri ekleyin. Birkaç tanesinde indirimli fiyat normal fiyattan daha yüksek olsun ( evet girilmez fakat yazdığınız sistemi kullanacak kişi hata yapıp indirimli fiyatı, normal fiyattan pahalı giren kişiler olabilir - ki oldu da :) )

Ürünlerde fiyatı 30'dan fazla olan ürünleri aramak için aşağıdaki gibi bir sorgu kullanabilirsiniz:

select * from urunler where if(indirimli_fiyat > 0 and fiyat > indirimli_fiyat, indirimli_fiyat, fiyat) > 30

Yukarıdaki sorguda; indirimli fiyatı sıfır olmayan ve indirimli fiyat, fiyattan küçükse indirimli fiyat değilse fiyatı 30'dan büyük olan dataları okursunuz.

 

Daha fazla örnek yada bir sorunuz olursa sormaktan çekinmeyin ;) Kolay gelsin

 

performans, MySQL, programlama
MySQL