Mysql 按字段顺序拉出一条记录
我有一个简单的sql查询,如下所示:Mysql 按字段顺序拉出一条记录,mysql,sql,Mysql,Sql,我有一个简单的sql查询,如下所示: SELECT * FROM leaderboard WHERE UserId = '$sessfacebook'" 这将为我选择用户名、facebookid和数字分数。我需要把这张记录拿出来,但如果表格是按分数排序的,我需要找出记录在哪个位置。希望这有意义。您可以使用子查询选择分数较高的记录数: SELECT * , (select count(*) from leaderboard lb2 where lb2.score > lb1
SELECT * FROM leaderboard WHERE UserId = '$sessfacebook'"
这将为我选择用户名、facebookid和数字分数。我需要把这张记录拿出来,但如果表格是按分数排序的,我需要找出记录在哪个位置。希望这有意义。您可以使用子查询选择分数较高的记录数:
SELECT *
, (select count(*) from leaderboard lb2 where lb2.score > lb1.score) as Rank
FROM leaderboard lb1
WHERE UserId = '$sessfacebook'"
您可以使用子查询选择分数较高的记录数:
SELECT *
, (select count(*) from leaderboard lb2 where lb2.score > lb1.score) as Rank
FROM leaderboard lb1
WHERE UserId = '$sessfacebook'"
您可以使用另一个查询
SELECT count(*) Position
FROM leaderboard
WHERE score >= (
SELECT score
FROM leaderboard
WHERE UserId = '$sessfacebook')
您可以将其作为子查询插入
SELECT *, (
SELECT count(*)
FROM leaderboard b
WHERE b.score >= leaderboard.score) Position
FROM leaderboard
WHERE UserId = '$sessfacebook'
您可以使用另一个查询
SELECT count(*) Position
FROM leaderboard
WHERE score >= (
SELECT score
FROM leaderboard
WHERE UserId = '$sessfacebook')
您可以将其作为子查询插入
SELECT *, (
SELECT count(*)
FROM leaderboard b
WHERE b.score >= leaderboard.score) Position
FROM leaderboard
WHERE UserId = '$sessfacebook'
这将创建一个表别名作为排名排行榜,并从中获取所需的记录。
会对你有用的,测试过了
这将创建一个表别名作为排名排行榜,并从中获取所需的记录。
将为您工作,测试它。aha好的,那么如何从该查询中获取位置…如何将其分配给变量?很抱歉,我的sql不是很出色。@eld-在这两个查询中,列的名称都是“Position”。因此,在php中,您将引用
$pos=intval($result['position'])代码>太棒了。我真的需要去做=去得到我想要的,但它正在工作。好的,那么我如何从查询中获得位置…我如何将其分配给变量?很抱歉,我的sql不是很出色。@eld-在这两个查询中,列的名称都是“Position”。因此,在php中,您将引用$pos=intval($result['position'])代码>太棒了。我真的需要去做=去得到我想要的,但它正在工作。非常感谢