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

标签 sql

我对 sql 完全陌生,我自己也做不到。所以我需要你的帮助。
我想对列中的值进行排序,然后保存更改。但我不知道该怎么做。

表看起来像这样:

Id | Name | SomeDescription
---------------------------
1  |Best  | Description1
2  |Worth | Description2
3  |Good  | Description3

我想得到这样的东西:
Id | Name | SomeDescription
---------------------------
1  |Best  | Description1
2  |Good  | Description3
3  |Worth | Description2

所以我需要对“id”和“name”列进行排序。

我使用以下语句对“名称”列的值进行排序:
SELECT * FROM games ORDER BY name ASC

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

最佳答案

你将不得不使用第二张 table

  • 创建新表 games2与您的 games 具有相同的结构表,确保 ID 是自动递增的
    CREATE TABLE `games2` LIKE `games`;
    
  • 将已排序的数据复制到 games2
    INSERT INTO `games2` (`Name`, `SomeDescription`) SELECT `Name`, `SomeDescription` FROM `games` ORDER BY `Name`
    
  • 删除或移动旧表
    -- DROP TABLE `games`;
    -- or
    RENAME TABLE `games` TO `games1`;
    
  • 将新表重命名为旧名称
    RENAME TABLE `games2` TO `games`;
    

  • 这些步骤将产生您想要的结果。

    关于sql - 如何对列中的值进行排序并更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079750/

    相关文章:

    java - 无法显示 JTable 中的行(数据库中的值)

    sql - 带有嵌套 SQL 查询的 Postgres View 或如何找到最后一个 INET

    php - SQL 查询将行值保存到 php 变量中

    sql - MS SQL 服务器分页

    SQL Server - THROW 之前的分号

    mysql - SQL:连接另一个表中的值

    sql - perl 函数 dbh->quote 仍然安全吗?

    php - 为什么我的 MySQL 字段在更新时重置为 null?

    mysql - SQL JOIN 或 GROUP BY 变体?

    mysql - 从一列中选择重复值并在一行中获取该值