对(可能)noob问题感到抱歉,但我是新来的。
我有一个具有列'position'的表,我想在插入新行时更改位置低于插入行的每一行的位置。例如,如果我添加位置4的行,如果有重复,它应该变为5,5应该转移到6,依此类推......
另外,除了通过php在每一行测试之外,有没有办法获得列的最高价值?
答案 0 :(得分:2)
您需要两个查询。假设您知道要插入的位置,请增加位置大于或等于您插入位置的每一行的位置:
UPDATE table SET position = position + 1 WHERE position >= newPosition
之后,可以插入newPosition
,不存在重复项:
INSERT INTO table SET position = newPosition
要获得最高价值,您可以使用MAX()
SELECT MAX(position) FROM table