类似于如何在不违反唯一约束的情况下交换 MySQL 中两行的值?, 但不完全..
我有一张这样的桌子:
CREATE TABLE IF NOT EXISTS `links` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order` int(11) NOT NULL,
`text` varchar(31) NOT NULL,
`html_text` varchar(63) NOT NULL,
`link` varchar(127) NOT NULL,
`html_link` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `order` (`order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
它表示网站导航区域中的链接。例如:指向主页的链接、指向联系页面的链接等。我希望能够更改这些链接的顺序,这就是我有专栏的原因order
。此列的值是唯一的,因此我可以按order
.
现在我想交换这个有序列表中两个链接的位置,所以我想交换order
. 但与其他问题不同,我不知道order
-fields 的值,我只知道id
要交换的两行的值。我只想有一个查询。
任何人都可以帮助我,因为我对复杂的 MySQL 查询不是很有经验。