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;
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
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
- 3 回答
- 0 关注
- 142 浏览
添加回答
举报