我是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/