假设我有一个如下所示的表:
name VARCHAR(50) PRIMARY KEY NOT NULL
ordernum TINYINT UNSIGNED NOT NULL
另外假设我有 3 行。
something - 1
somethingelse - 2
somethingmore - 3
如果我想插入另一个名为 something1
的条目,并将其 ordernum 设置为 2,我该如何重新排序 ordernum 为 2 或更大的所有行?即 somethingelse
的 ordernum 为 3,而 somethingmore
的 ordernum 为 4?
我听说您可以通过 FIELD()
来完成,但我不确定具体怎么做。
如果不可能,无论如何用 PHP 来做?
最佳答案
在你的例子中:
UPDATE `table` SET `ordernum` = `ordernum` + 1 WHERE `ordernum` >= 2
INSERT INTO `table` (`name`, `ordernum`) VALUES ('something1', 2)
关于php - 在 MySQL 中存储某物的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065767/