mysql更新查询:添加带有值的表列
表中有3列:mysql更新查询:添加带有值的表列,mysql,sql,sql-update,sql-order-by,multiple-columns,Mysql,Sql,Sql Update,Sql Order By,Multiple Columns,表中有3列: id Name Rating 1 John 0.976 2 Mark 0.500 3 Andrew 0.976 4 Jane 1.000 可以执行什么sql查询来为此表创建一个新的id\u new列,因此id\u new实际上是具有排序依据评级的列 因此,新表将是: new_id id Name Rating 1 4 Jane 1.000 2 3 Andrew 0.976 3 1 John 0
id Name Rating
1 John 0.976
2 Mark 0.500
3 Andrew 0.976
4 Jane 1.000
可以执行什么sql查询来为此表创建一个新的id\u new
列,因此id\u new
实际上是具有排序依据评级的列
因此,新表将是:
new_id id Name Rating
1 4 Jane 1.000
2 3 Andrew 0.976
3 1 John 0.976
4 2 Mark 0.500
您可以看到,此表看起来像是按评级进行排序的
如何使用mySql查询实现这一点
谢谢。如果要修改表的结构并添加新列,请执行以下操作:
ALTER TABLE `table_name` ADD `new_id` INT( 11 ) NOT NULL FIRST;
SET @new_id:=0;
UPDATE
table_name
SET
new_id = (@new_id := @new_id + 1)
ORDER BY
rating DESC;
SET @new_id:=0;
SELECT
(@new_id := @new_id + 1) AS new_id,
id,
name,
rating
FROM
table_name
ORDER BY
rating DESC;
如果不想修改结构,只需返回带有新列的选择:
ALTER TABLE `table_name` ADD `new_id` INT( 11 ) NOT NULL FIRST;
SET @new_id:=0;
UPDATE
table_name
SET
new_id = (@new_id := @new_id + 1)
ORDER BY
rating DESC;
SET @new_id:=0;
SELECT
(@new_id := @new_id + 1) AS new_id,
id,
name,
rating
FROM
table_name
ORDER BY
rating DESC;
您是否在询问如何对DESC byRating进行排序并显示结果中每行的排名?或者如何添加新列?为什么要这样做?