Php 同一表上多个请求的SQL语句

Php 同一表上多个请求的SQL语句,php,mysql,sql,Php,Mysql,Sql,我想从数据库表中选择多个值。 第一个请求是从我的前10个列表的表格中获取前10个值。 第二个要求是得到球员在桌子上的位置 伪语句可能如下所示: SELECT * FROM mytable ORDER BY score DESC LIMIT 10 AND WHERE username = myusernamevariable 从这个选择中,我需要获得第二个请求的位置(其中username=myusernamevaluate) 有没有一种方法可以创建一个SQL语句,返回前十个数据库条目和特定行中的

我想从数据库表中选择多个值。 第一个请求是从我的前10个列表的表格中获取前10个值。 第二个要求是得到球员在桌子上的位置

伪语句可能如下所示:

SELECT * FROM mytable ORDER BY score DESC LIMIT 10 AND WHERE username = myusernamevariable
从这个选择中,我需要获得第二个请求的位置
(其中username=myusernamevaluate)


有没有一种方法可以创建一个SQL语句,返回前十个数据库条目和特定行中的条目(以及该条目所在的位置)?

您想要位置还是标识播放器所在的行?您可以轻松添加标志以标识玩家的行:

Select t.*, (username = myusernamevariable) as IsMyPlayer
FROM mytable t
ORDER BY score DESC
LIMIT 10 ;
如果要同时返回一个玩家的位置和行,则需要两个查询,因为返回集的结构不同。如果要在每行上显示排名,可以使用以下方法:

Select t.*, (username = myusernamevariable) as IsMyPlayer, (@rank := @rank + 1) as rank
FROM mytable t cross join
     (select @rank := 0) const
ORDER BY score DESC
LIMIT 10 ;

要获得玩家位置:

SELECT COUNT(id)+1 AS position FROM mytable
WHERE score > (SELECT score FROM mytable WHERE username = 'myusernamevariable')
ORDER BY score DESC LIMIT 10 ;

我不太明白你的问题…我建议使用Redis及其
排序集
,并使用
zrank
命令。看,我将尝试用两个查询来完成它。谢谢你的帮助。