如何对列中的值进行排序并更新表?

Sab*_*bre 13 sql

我是sql的新手,不能自己做.所以我需要你的帮助.我想在列中对值进行排序,然后保存更改.但我不知道该怎么做.

表看起来像这样:

Id | Name | SomeDescription
---------------------------
1  |Best  | Description1
2  |Worth | Description2
3  |Good  | Description3
Run Code Online (Sandbox Code Playgroud)

我希望得到类似的东西:

Id | Name | SomeDescription
---------------------------
1  |Best  | Description1
2  |Good  | Description3
3  |Worth | Description2
Run Code Online (Sandbox Code Playgroud)

所以我需要对"id"和"name"列进行排序.

我使用以下语句对"名称"列的值进行排序:

SELECT * FROM games ORDER BY name ASC
Run Code Online (Sandbox Code Playgroud)

但是,如何对id列的值进行排序并保存表中的更改?请帮忙.

Umb*_*lla 22

你必须使用第二个表

  1. 创建一个games2与表格结构相同的新表格games,确保ID自动递增

    CREATE TABLE `games2` LIKE `games`;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 复制数据,排序,进入 games2

    INSERT INTO `games2` (`Name`, `SomeDescription`) SELECT `Name`, `SomeDescription` FROM `games` ORDER BY `Name`
    
    Run Code Online (Sandbox Code Playgroud)
  3. 放下或移动旧桌子

    -- DROP TABLE `games`;
    -- or
    RENAME TABLE `games` TO `games1`;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将新表重命名为旧名称

    RENAME TABLE `games2` TO `games`;
    
    Run Code Online (Sandbox Code Playgroud)

这些步骤将产生您想要的.