假设我有一个包含2个字段的表," word_id"和" word",其中包含一些文学经典作品中的每一部作品。我只需输入以下内容即可插入单词:
INSERT INTO equus(word) VALUES('horse');
word_id字段在整个时间内自动递增,跟踪每个单词在书中的位置相互比较。哦不,我在第一页错过了一个字!有没有办法在给定位置插入记录(比如在word_id = 233之后),并在其后重新调整每个单词以便所有记录保持有序?
答案 0 :(得分:2)
这可以使用带有update
子句的order by
进行两次查询。
给一些INSERT_POS
插入值:
UPDATE `equus`
SET `word_id` = `word_id` + 1
WHERE `word_id` >= INSERT_POS
ORDER BY `word_id` DESC;
INSERT INTO `equus`(`word_id`, `word`) VALUES(INSERT_POS, 'TheWord');