我有文章表
`id`,
`article_id`,
`stage_1_point`,
`stage_2_point`
我需要基于
的前10篇文章(stage_1_point+stage_2_point),
列表中的当我查看任何需要展示其位置的文章时。 我的问题是如何在不使用订单的情况下显示其位置。
答案 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个结果。