我有一张像下面的桌子,
| id | name | color | ------+--------+--------- | 1 | pear | green | | 2 | apple | red | | 3 | banana | yellow | | 4 | grape | purple |
我想使用“名称”列按字母顺序重新排序,并使用此新顺序重置ID(自动递增),以得到以下结果
| id | name | color | ------+--------+--------- | 1 | apple | red | | 2 | banana | yellow | | 3 | grape | purple | | 4 | pear | green |
问题 :如何使用MYSQL执行此操作?
请问您为什么要这么做?
如果有人修改了任何名称值或插入了新行,则会使您的订购方案混乱。试图以表的其他位置(名称列)已经可用的PK顺序存储一些含义似乎是多余的,因此是个坏主意。
更好的解决方案是不用担心ID列的值,而在应用程序中使用数据时仅对名称列进行排序。
PS: 对非回答类型的回复表示抱歉。通常,我认为您有充分的理由,只给出直接回答您要尝试做的事情的答案,但是我从您的其他问题中注意到,您仍处于数据库设计的早期学习阶段,因此我想提供帮助为您指明正确的方向,而不是帮助您朝着不明智的方法前进。