mysql UPDATE查询:添加带有值的表列

时间:2013-07-28 07:46:40

标签: 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_new列,因此id_new实际上是按Rating排序的列?

所以,新表将是:

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

您看到此表看起来像是Rating已排序的。

如何使用mySql查询?

谢谢。

2 个答案:

答案 0 :(得分:2)

如果要修改表的结构并添加新列:

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;

如果您不想修改结构,只需使用新列返回SELECT

SET @new_id:=0;
SELECT
   (@new_id := @new_id + 1) AS new_id,
   id,
   name,
   rating
FROM
   table_name
ORDER BY
    rating DESC;

答案 1 :(得分:0)

ALTER TABLE_NAME ADD new_id int(6) FIRST;