MySQL:按顺序排序

时间:2015-07-21 05:15:55

标签: php mysql sql

我有文章表

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

我需要基于

的前10篇文章
(stage_1_point+stage_2_point),
列表中的

当我查看任何需要展示其位置的文章时。 我的问题是如何在不使用订单的情况下显示其位置。

2 个答案:

答案 0 :(得分:1)

USE 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

<强>更新

正如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,用于说明文章的位置。

答案 1 :(得分: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个结果。