1

表中有 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实际上该列是 order byRating吗?

因此,新表将是:

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

您会看到此表看起来像是按 desc 排序的Rating

如何使用 mySql 查询来做到这一点?

谢谢你。

4

2 回答 2

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带有新列的 a:

SET @new_id:=0;
SELECT
   (@new_id := @new_id + 1) AS new_id,
   id,
   name,
   rating
FROM
   table_name
ORDER BY
    rating DESC;
于 2013-07-28T07:56:56.557 回答
0
ALTER TABLE_NAME ADD new_id int(6) FIRST;
于 2013-07-28T07:57:05.317 回答