我是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列的值并将更改保存到表中?
请帮忙。

最佳答案

您将不得不使用第二张桌子


用与您的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/

10-12 14:17
查看更多