php - 从 PHP 更新表中的排名行

标签 php mysql

此代码动态创建排名并相应地设置它们。现在的问题是如何更新表中的排名值而不重复?我最近发布了这个问题,但没有找到解决方案。我是将此代码应用于 PHP 代码,以便排名根据 TeamPoints 进行更新...

请帮帮我!谢谢...

SELECT TeamID,
   TeamName,
   TeamLeader,
   TeamEmail,
   TeamWins,
   TeamLoss,
   TeamPoints,
   TeamRank
   FROM
      (
         SELECT TeamID,
                TeamName,
                TeamLeader,
                TeamEmail,
                TeamWins,
                TeamLoss,
                TeamPoints,
                @Rank := @Rank + 1 AS TeamRank
                FROM team
                CROSS JOIN (SELECT @Rank:=0) Sub0
                ORDER BY TeamPoints DESC
      ) Sub1

最佳答案

您只是在执行SELECT 语句。为了UPDATE,您实际上必须在原始表上使用UPDATE语句,并使用该查询来提供 teamRank 的值:

UPDATE team t
INNER JOIN(
  SELECT TeamID,
  TeamPoints,
  @Rank := @Rank + 1 AS TeamRank
  FROM team
  CROSS JOIN (SELECT @Rank:=0) Sub0
  ORDER BY TeamPoints DESC
  ) a ON a.teamID = t.teamID
SET t.teamRank = a.teamRank

关于php - 从 PHP 更新表中的排名行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20507993/

相关文章:

php - PayPal Express Checkout 不适用于 php

php - MySQL 系统中的初期 bug

mysql - 尽管我能够连接并插入,但无法从 Lambda 更新 MySQL (AWS RDS) 表

php - 将旧表中的额外内容复制到新表

php - 如何在 LIMIT 子句中应用 bindValue 方法?

php - 调用未定义的方法 DOMNodeList::getElementsByTagName() PHP

php - 如何从 PHP 中的 UTF-8 字符串中替换/删除 4(+) 字节字符?

php - 在 php 中编辑 odt 文档的库

php - 如何在应用程序级别处理 MySQL 死锁情况?

mysql - XAMPP 中的 SQL 查询