更改mysql中的现有重复条目

时间:2010-05-10 23:16:29

标签: mysql duplicates

对(可能)noob问题感到抱歉,但我是新来的。

我有一个具有列'position'的表,我想在插入新行时更改位置低于插入行的每一行的位置。例如,如果我添加位置4的行,如果有重复,它应该变为5,5应该转移到6,依此类推......

另外,除了通过php在每一行测试之外,有没有办法获得列的最高价值?

1 个答案:

答案 0 :(得分:2)

您需要两个查询。假设您知道要插入的位置,请增加位置大于或等于您插入位置的每一行的位置:

UPDATE table SET position = position + 1 WHERE position >= newPosition

之后,可以插入newPosition,不存在重复项:

INSERT INTO table SET position = newPosition

要获得最高价值,您可以使用MAX()

SELECT MAX(position) FROM table