2014-05-03 48 views
0

我有這樣的代碼(它的工作原理):如何在MySQL中不顯示負數?

SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes 
FROM like_table 
GROUP BY sportsID, newsID 
ORDER BY totalLikes DESC 

我試圖修改它不顯示負值,但它不工作。

SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes 
FROM like_table 
WHERE totalLikes > 0 
GROUP BY sportsID, newsID 
ORDER BY totalLikes DESC 

任何人都可以幫忙嗎?我不知道我做錯了什麼。

回答

3

嘗試使用HAVING條款:

SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes 
FROM like_table 
GROUP BY sportsID, newsID 
HAVING SUM(likes)> 0 
ORDER BY totalLikes DESC 

說明:加入

HAVING子句SQL因爲WHERE關鍵字無法與合計函數一起使用。

WHERE子句將條件放在選定的列上,而HAVING子句將條件放在由GROUP BY子句創建的組上。

+1

謝謝。提供了答案和語法解釋! – Martynogea

2

WHERE totalLikes > 0應該是HAVING SUM(likes) > 0並置於GROUP BY子句之後。因此:

SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes 
FROM like_table 
GROUP BY sportsID, newsID 
HAVING SUM(likes) > 0 
ORDER BY totalLikes DESC 
+0

不能接受,兩個答案,但我會投你支持:) – Martynogea