2013-04-08 70 views
1

對於我的投票系統,我有兩種可能的投票值。 1或-1,這個確切的值被保存在數據庫中。mysql resturn value as min or plus from sum

現在我選擇/計數像field_up和field_down分開的值。我想改變我的查詢輸出只有一個值,如:

如果我們有'+6'和-5它應該返回+1(帶+) 如果我們有-3和+2它應該返回-1(帶 - )

現在我有後續查詢提前

SELECT 
SUM(CASE thumb when 1 then 1 else 0 end) AS "thumbs_up", 
SUM(CASE thumb when -1 then 1 else 0 end) AS "thumbs_down" 
FROM ..etc 

謝謝!

Thea。

回答

1
SELECT SUM(thumb) AS votes FROM your_table 
0

試試這個

SELECT 
SUM(CASE WHEN thumb =1 THEN 1 ELSE 0 END) as "thumbs_up", 
SUM(CASE WHEN thumb =-1 THEN 1 ELSE 0 END) as "thumbs_down", 

FROM ..etc 
+0

@Freshtea你可以試試這個 – PSR 2013-04-08 12:14:00

+0

@@ Freshtea是工作ü – PSR 2013-04-08 12:19:09

0

夫婦的事情。您可以大大簡化您的查詢到這一點:

SELECT 
SUM(thumb = 1) AS thumbs_up, 
SUM(thumb = -1) AS thumbs_down 
FROM ..etc 

因爲在MySQL(只)true1false0

其次,你需要查詢了該查詢來調整輸出:

SELECT concat(if(thumbs_up > thumbs_down, '+', ''), thumbs_up - thumbs_down) 
FROM (
SELECT 
    SUM(thumb = 1) AS thumbs_up, 
    SUM(thumb = -1) AS thumbs_down 
    FROM ..etc 
) x