MySQL的:为了通过总和
问题描述:
我有文章表MySQL的:为了通过总和
`id`,
`article_id`,
`stage_1_point`,
`stage_2_point`
我需要前10篇基于
(stage_1_point+stage_2_point),
列表
,当我查看任何文章中,我必须表现出自己的位置。 我的问题是如何显示它的位置,而不使用顺序。
答
使用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
它告诉物品的位置。
答
你可以试试下面的查询如下
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
没有秩序 –
您可以使用限制功能。 –
我不能使用限制我必须显示所有文章 – user3311313
为什么不'ORDER BY'? –