表格中有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查询?
谢谢。
答案 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;