我正在设法解决一个查询问题,但我只是想不通。如果有人给我一个指针,我将不胜感激。作为我要实现的目标的简单示例,我在数据库中有这些记录
Score|Ranking
-------------
100 |0
200 |0
300 |0
我希望“排名”字段根据得分最高的人包含1,2,3,因此结果应为:
Score|Ranking
-------------
100 |3
200 |2
300 |1
目前,我正在为所有这些记录做一个for next循环,但是鉴于现实情况可能是几千个-可能要花很长时间!有没有人对魔术查询有一个想法,可以一口气做到这一点?
在MySQL中,您可以 使用row_number 。
这是在中使用它的示例SELECT
:
select @rownum:=@rownum+1 ‘rank’, p.*
from player p, (SELECT @rownum:=0) r
order by score desc;
如果INSERT INTO
使用SELECT
这样的话,您将获得排名。
问题内容: 我有一个表格播放器的以下表格结构 假设玩家ID和得分具有有效值,是否可以基于单个查询中的得分数量来更新所有玩家的排名?如果两个人的分数相同,则应该并列。 更新: 我正在使用建议作为本机查询的查询使用hibernate模式。Hibernate不喜欢使用变量,尤其是’:’。有人知道任何解决方法吗?是通过不使用变量,还是在这种情况下通过使用HQL解决hibernate的限制? 问题答案: 一
问题内容: 如何批量更新mysql数据?如何定义这样的事情: 具有一些值,例如: 和其他值: 也许用mysql是不可能的?一个PHP脚本? 问题答案: 在这种情况下,最简单的解决方案是使用构造。它的工作速度非常快,并且可以轻松完成工作。 或使用建筑
问题内容: 我不知道是什么问题。使用MySQL 5.0尝试运行以下MYSQL更新语句时出现编译错误 所有字段名称都是正确的。有什么想法吗? 问题答案: 尝试这个: 更新: 既然您说查询产生了语法错误,所以我创建了一些可以对其进行测试的表,并确认查询中没有语法错误: 看到?没有语法错误。我针对MySQL 5.5.8进行了测试。
问题内容: 我有2个表格,Products和ShoppingCart,我想根据ShoppingCart中指定的产品名称和数量来更新和减少Products表中产品的“数量”。我怎样才能做到这一点? 表:产品字段:产品名称,产品数量 表:购物车字段:ProductName,ProductQty 访问数据库 问题答案: 您应该有一个产品ID。然而: 您还应该在字段和表名中删除空格。
问题内容: 这是我的桌子: 然后,出于某种目的,我运行sql更新表t1中的日期: 现在,查看更改: 我不知道为什么匹配的行数为1,并且很难理解t1的列的值是id = 1而不是3的值2。当它与第一行匹配时,更新停止了吗?我认为在这种情况下,它将在t1和t2之间进行完整的数据匹配。任何帮助表示赞赏! 更新 谢谢,这是我正在认真处理的情况: 对于t2中的值,将它们用’,’分隔,并通过每个id合并到表t1
问题内容: 我正在尝试创建一个存储过程。这是我到目前为止(不起作用)的内容: HAVERSINE是我创建的可以正常工作的函数。如您所见,我正在尝试从“城市”表中获取城市的ID,然后将cityLat和cityLng设置为该记录的其他值。我显然在这里通过使用SELECTs做错了。 这有可能吗?看来应该如此。任何帮助将不胜感激。 问题答案: 更正了一些问题,并添加了一个替代选择-适当删除。