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 uyelerYukarı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) > 30Yukarı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