为了账号安全,请及时绑定邮箱和手机立即绑定

如何用计算排名的结果制作表格?

如何用计算排名的结果制作表格?

PHP
蝴蝶刀刀 2021-12-24 15:55:09
我想使用表格中计算排名的结果制作新表格。我使用 PHP 和 MySQL。我从谷歌搜索中得到了一些代码,它在屏幕上工作。Select User_Id, Score, @rank := @rank + 1 as Ranking    from Rankings, (select @rank := 0) XX    order by Score desc我想知道如何使用这些数据创建新表,以便我可以随时查看排名。我想知道这段代码是否适用于大数据(大量记录)。任何人都可以帮助这个初学者吗?在此先感谢您的帮助。
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

1:CREATE TABLE ... SELECT 语法:您可以通过在SELECT语句末尾添加语句来从另一个表创建一个表CREATE TABLE。


CREATE TABLE new_table_name AS

SELECT User_Id, Score, @rank := @rank + 1 AS Ranking

FROM Rankings, (SELECT @rank := 0) XX

ORDER BY Score DESC;

注意:这将根据选择查询自动检测列数据类型和列名,有时它们不正确。


要创建所需的列名及其数据类型,您可以在CREATE TABLE子句中提及相同的内容。


CREATE TABLE new_table_name (user_id INT NOT NULL, rank INT)

SELECT User_Id, Score, @rank := @rank + 1 AS Ranking

FROM Rankings, (SELECT @rank := 0) XX

ORDER BY Score DESC;

2: INSERT ... SELECT 语法:这将用于在现有表中存储选择语句的数据。


INSERT INTO existing_table_name (user_id, rank)

SELECT User_Id, Score, @rank := @rank + 1 AS Ranking

FROM Rankings, (SELECT @rank := 0) XX

ORDER BY Score DESC;


查看完整回答
反对 回复 2021-12-24
?
森栏

TA贡献1810条经验 获得超5个赞

您可以使用以下语法基于选择查询数据创建新表


CREATE TABLE new_tbl [AS] select query;

根据您的查询


Create table Tablename AS Select User_Id, Score, @rank := @rank + 1 as Ranking

from Rankings, (select @rank := 0) XX

order by Score desc

有关更多信息,请参阅https://dev.mysql.com/doc/refman/5.6/en/create-table-select.html


查看完整回答
反对 回复 2021-12-24
?
烙印99

TA贡献1829条经验 获得超13个赞

根据this和this,您可以使用CREATE TABLE ... SELECT语法。


CREATE TABLE `UserRankings` AS SELECT User_Id, Score, @rank := @rank + 1 AS Ranking

    FROM Rankings, (SELECT @rank := 0) XX

    ORDER BY Score DESC


查看完整回答
反对 回复 2021-12-24
  • 3 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信