MySQL de IFNULL metodu

by admin on Eylül 22, 2010

Böyle de güzel birşey varmış.Lazım oldukça öğrenme geleneği :) Bir sorgum var, işte bu sorgu bilmem ne alanına göre groupby yapıyor ve o alanın sum ını çekiyor buraya kadar sıkıntı yok.o sum alana göre order by yaptığımızda sıkıntı çıkıyor neden mi mersiniz? Çünkü NULL gelen değerler negatif değerlerin altında kalıyor.Null yerine 0 atmak işimizi çözüyor.İşte tam bu sırada Mysql in o güzel metodu imdadımıza yetişiyor.

Sorgu ve örnek kullanımı aşağıdaki gibidir.

SELECT p.*, f.forum_id, f.forum_name, t.*, u.username, u.username_clean,
u.user_sig, u.user_sig_bbcode_uid, u.user_colour,
IFNULL(SUM( av.vote),0) as post_votes
FROM phpbb_posts p LEFT JOIN phpbb_answer_votes av ON (post_id = av.answer_id)
LEFT JOIN phpbb_topics t ON (p.topic_id = t.topic_id)
LEFT JOIN phpbb_forums f ON (p.forum_id = f.forum_id)
LEFT JOIN phpbb_users u ON (p.poster_id = u.user_id)
WHERE p.post_id IN (14, 12, 11, 10, 9, 8, 7, 6, 5)
AND p.post_approved = 1 GROUP BY (post_id) ORDER BY post_votes DESC

Leave your comment

Required.

Required. Not published.

If you have one.