2013-10-06 34 views
0

我的表架構如下:如何獲得最高票圖像路徑

id || image1 || image2 || image1vote || image2vote || uid 
1  abc.jpb  adc.jpg  50   40   12 
2  bc.jpb  dc.jpg   20   70   13 
3  kjc.jpb  ydc.jpg  20   10   10 
4  pjc.jpb  mkc.jpg  80   60   10 

我使用MySQL與phpMyAdmin作爲我的後端。

從前端我上傳兩個圖像,我正在存儲在數據庫中。對於這兩個圖像我分開保存投票。 image1的投票存儲在列image1vote中,而投票image2存儲在列image2vote中。

我的問題是以下幾點:我想得到最多選票的圖像路徑。所以,如果image1比image2擁有更多的投票,我需要image1的值,反之亦然。

例如:在第一行中,我想要image1的值,因爲image1vote中的值大於image2vote中的值。在第二行中,我需要image2的值。

回答

2

我沒有測試它,但如果我理解正確你的問題,它應該是這樣的:

SELECT 
    IF(image1vote >= image2vote, image1, image2) AS path, 
    GREATEST(image1vote, image2vote) as votes 
FROM imagetable 
+0

如果我想要最高的投票也那麼我應該在這個查詢chnage? –

+1

@ 404NotFound,請參閱已更新的答案。 –

+0

非常感謝您的回答... +1我的身邊 –

1

如果圖像和他們的選票都在同一個表,你可以使用情況retireve

SELECT 
id , 
(CASE WHEN image1vote > image2vote THEN image1 
WHEN image1vote < image2vote THEN image2 
WHEN image1vote = image2vote THEN image1 
END) AS `images`, 
(CASE WHEN image1vote > image2vote THEN image1vote 
WHEN image1vote < image2vote THEN image2vote 
WHEN image1vote = image2vote THEN image1vote 
END) AS `votes` 
,uid 
FROM `table` 
+0

它會返回ID嗎?但我想要image1或image2 –

+1

再次查看我的查詢'id'將有圖像id'votes'將得到基於比較的投票'images'將有基於同情的image1或image2,如果兩個圖像的投票相等則image1將被退回 –

+1

非常感謝你的回答...我的身邊+1 –