假设我有这样一个字符表:(我使用游戏统计数据只是因为它更容易理解)
id age strength intelligence speed
1 int int int int
2 int int int int
3 int int int int
4 int int int int
5 int int int int
6 int int int int
我有下面的排名查询,每页限制25条记录,它显示前25条记录的第1-25条,但当我转到下一页时,排名保持在第1-25位,当它应该是26-50。
SELECT image, name, wins, losses, level, xp, wins AS W, losses AS L,
TRUNCATE(wins/IF(wins=0,1,wins+losses)*100,0) AS PCT,
@curRank := @curRank + 1 AS rank
FROM teams p
, (SELECT @curRank := 0) r
WHERE `console` = 3 AND `game`
我的数据库里有足球运动员。他们每个人都有一个排名(1是最好的),我在MYSQL查询中实时计算他们的年龄。该查询通过使用他们的排名加上他们的年龄来进行排序。所以我首先有了这个..。
$rankquerytext="ranking + age";
那我就有疑问..。
$sql = "SELECT *, FLOOR(DATEDIFF(CURDATE(), born) / 365.25) AS age
FROM players
ORDER BY " . $rankquerytext . "";
这个很好用。不过,我想说得更具体一点,不只
我有下面的排名查询,限制在每页25条记录,它显示前25条记录的1-25位,但当我转到下一页时,排名保持在1-25位,而它应该是26-50位。
("SELECT image, name, wins, losses, level, xp, wins
AS W, losses AS L, TRUNCATE(wins/IF(wins=0,1,wins+losses)*100,0)
AS PCT, @curRank := @curRank + 1 AS rank FROM teams p,
(SELECT @curRank := 0) r WHERE `console` = 3 AN
我有一个事件数据库。每个事件都有一个等级(1-5)。我想按日期范围查询数据库中的事件,我想选择一组排名为1的随机事件,然后选择一组排名为2的随机事件,依此类推。
这个查询给了我一个随机选择的排名1的事件:
SELECT * FROM
(
SELECT * FROM `events`
WHERE `date` >1326578956
AND `date`<1326870399
AND `rank`=1
ORDER BY RAND()
)
e LIMIT 0,10
但可能有这样的情况,即没有排名为1或排名2的事件。
是否可以只使用MYSQL查询。我可以使用PHP迭代查询,
我有关系讲师(ID,姓名,部门名称,薪水)。
我们作业中的问题要求我们:使用SQL中的rank函数编写一个查询,查询前10名收入最高的教师的id和姓名。
我可以使用select id, name, rank() over(order by(salary) desc) as sal from instructor order by sal对讲师进行排名
我下一步如何抓住排名前十的讲师?谢谢。
我正尝试在MySQL中执行一个查询,该查询仅返回表中的10个用户,但其排名值是xp列的排序结果。现在我有这样的想法: SELECT id, xp, @curRank := @curRank + 1 AS rank
FROM usuarios, (SELECT @curRank := 0) r
ORDER BY xp DESC LIMIT 10; 在获取前10个用户时,它看起来工作得很好。 +--------------------+------+------+
| id | xp | rank |
+--------------------
我的MYSQL数据库有一个sql查询,希望将结果限制为10个销售人员,而不是20个。我尝试在查询中插入他们的名字,但总是出错。也可以根据总数进行排名。我使用的sql查询是:
select sales_id, totalbuy, totalsell, totalbuy + totalsell as total from
(select sales_id, SUM(CASE WHEN side= 'buy' THEN 1 ELSE 0 END) AS totalbuy,
SUM(CASE WHEN side= 'sell' THEN 1 ELSE 0 END) A
我不是php的专业人士。我有一个简单的表格,如下所示:
game_id name score
我使用这个查询来获得mysql中一个玩家的排名:
SELECT FIND_IN_SET( score, ( SELECT GROUP_CONCAT( score ORDER BY score ASC ) FROM highscores ) ) AS 'rank' FROM highscores where game_id = $game_id
它可以在mysql中显示排名,但我无法在php代码中将排名作为参数获取。
我尝试过以下几种方法:
mysql_fetch_a
我正在使用一个MySQL数据库来记录玩家在我创建的游戏中的高分。正在通过PHP文件"highscores.php“访问MySQL数据库。
高分都记录在数据库中,但我希望由PHP文件实现实际的排名数。我希望能够查询特定玩家的排名,而不是只查询他/她的高分。
我正在使用这个来获得我的球员的高分:
$username = $_GET["username"];
$checkID = mysql_query("SELECT * from Highscores WHERE Username =
'$username' ORDER BY Score DESC
我对MySQL非常陌生,很难运行复杂的查询。我有两张桌子
电影表
CREATE TABLE movies (movieid int(4) NOT NULL PRIMARY KEY,
title varchar(255) NOT NULL,
genres varchar(255) NOT NULL);
打分表
CREATE TABLE ratings (userid int(4) NOT NULL, movieid int(4) NOT NULL,
rating int(1) NOT NULL, timestamp int(10) NOT NULL ADD CONSTRAINT FK_rat
我目前有一个使用MySQL的在线游戏。我有一个播放器表,看起来像这样:
create table player (
id integer primary key,
name varchar(50),
score integer
);
我有一个"score“列的索引,并像这样显示排名:
select id, name, score from player order by score desc limit 100
我想把我的系统迁移到Redis上(或者,如果其他NoSQL更适合解决这类问题,请告诉我)。所以我想知道如何有效地显示这种排名表?
AFAICT,这可能是
我有一个表,我想从中获取前N条记录。这些记录是按值排序的,并且某些记录具有相同的值。我想在这里做的是获得前N个记录的列表,包括被绑定的记录。这是表格中的内容:
+-------+--------+
| Name | Value |
+-------+--------+
| A | 10 |
| B | 30 |
| C | 40 |
| D | 40 |
| E | 20 |
| F | 50 |
+-------+--------+
现在,如果我想像这样获得前3名
SELECT * FROM
我正试图获得单一用户的排名位置。我已经有了获得全球排名的查询,但没有一个用户。
我试着:
SELECT FIND_IN_SET(`points`, (SELECT GROUP_CONCAT(`points` ORDER BY `points` DESC) FROM `users`)) AS `rank` FROM `users` WHERE `user` = '1'
但是,如果许多用户有相同的点,则该查询返回重复的排名位置。
我的全球排名查询是:
SET @rank := 0; SELECT `user`, `points`, @rank := @rank + 1 AS `ra
最近我开发了手机游戏(LAMP + memcached)。
这个游戏有玩家的积分表。该表具有member_id、name、score列。
我想显示排行榜(全球排名)给我们的用户。
只需查询SELECT * FROM score ORDER BY score DESC,并显示结果集。
但我不认为这是个好方法。如果用户达到2000万,这个查询看起来很糟糕。这种情况下的最佳实践是什么?你能给我一些建议吗?
如何查看特定用户的排名?我想要显示每个用户的排名。