在mysql上进行唯一的主要Id交换?

Ahm*_*rim 1 php mysql sql

我有一个sql表,其中包含php页面中菜单的数据.

 SELECT * FROM `hizlierisim` ORDER BY id LIMIT 0 , 10
Run Code Online (Sandbox Code Playgroud)

它按id行排序.但我要求在管理面板上添加订单控制.因此,将有向上和向下按钮重新排列菜单项.

我想有两种方法可以做到这一点

一种是创建一个名为'order'的行并将sql查询更改为:

SELECT * FROM `hizlierisim` ORDER BY `order` LIMIT 0 , 10
Run Code Online (Sandbox Code Playgroud)

要么

交换我们想要移动的列的id.并仍然使用相同的SQL:

SELECT * FROM `hizlierisim` ORDER BY id LIMIT 0 , 10
Run Code Online (Sandbox Code Playgroud)

id方法似乎更容易,但我想知道是否有可能在mysql上交换两列的id?

Mar*_*c B 5

弄乱主键字段只是为了满足一些任意的排序要求是一个坏主意.特别是在外国关键的情况下.添加一个'order'列(顺便说一句,这是一个保留字,所以如果你想节省一些其他的东西,请使用其他东西)是实用的选择.