2015-07-21 40 views
-4

我有文章表MySQL的:爲了通過總和

`id`, 
`article_id`, 
`stage_1_point`, 
`stage_2_point` 

我需要前10篇基於

(stage_1_point+stage_2_point), 
列表

,當我查看任何文章中,我必須表現出自己的位置。 我的問題是如何顯示它的位置,而不使用順序。

+0

您可以使用限制功能。 –

+0

我不能使用限制我必須顯示所有文章 – user3311313

+0

爲什麼不'ORDER BY'? –

回答

1

使用ORDER BY (stage_1_point+stage_2_point) DESC

所以,它會像

SELECT `id`, 
`article_id`, 
`stage_1_point`, 
`stage_2_point` 
FROM YOUR_TABLE ORDER BY (stage_1_point+stage_2_point) DESC 
LIMIT 0,10 

UPDATE

由於OP說,他/她需要知道具體物品的位置。

SELECT * FROM (SELECT `id`, 
`article_id`, 
`stage_1_point`, 
`stage_2_point`, 
@curRank := @curRank + 1 AS rank 
FROM YOUR_TABLE, (SELECT @curRank := 0) r ORDER BY  
(stage_1_point+stage_2_point) DESC) TAB 
WHERE `article_id`=10 

上面的查詢將返回行的article_id的10,這將有一列Rank它告訴物品的位置。

+0

我必須顯示按日期排序的所有文章 – user3311313

+0

你還沒有提到的日期欄。對 ? – Ravi

+0

是的,我沒有提及 – user3311313

0

你可以試試下面的查詢如下

Select 
    stage_1_point+stage_2_point as added_point, 
    columnsid, 
    article_id, 
    stage_1_point, 
    stage_2_point 
FROM tablename 
ORDER BY 1 desc 
Limit 0,10 

這將根據列一個結果數據進行排序,並只取前10個結果。

+0

沒有秩序 –