Phi*_*yfi 5 mysql sql limit offset
我有一个类似于这样的表:
| 0 | X |
| 1 | X |
| 2 | X |
| 3 | Y |
| 4 | Y |
| 5 | X |
| 6 | X |
| 7 | Y |
| 8 | Y |
| 9 | X |
Run Code Online (Sandbox Code Playgroud)
我想替换前两次出现的Xwith X1,然后再出现4次出现,X2以便生成的表如下所示:
| 0 | X1 |
| 1 | X1 |
| 2 | X2 |
| 3 | Y |
| 4 | Y |
| 5 | X2 |
| 6 | X2 |
| 7 | Y |
| 8 | Y |
| 9 | X2 |
Run Code Online (Sandbox Code Playgroud)
有问题的表当然要大得多,因此出现次数也会更高,因此手动编辑不是解决方案.
我想做这样的事情:
UPDATE table SET column = 'X' WHERE column = 'X2' LIMIT 90, 88
但不幸的是MySQL在UPDATE查询中似乎不支持OFFSET ...有什么办法可以做到这一点吗?
尝试这个:
UPDATE table SET column = 'X1' WHERE id IN(SELECT id FROM (SELECT id FROM table WHERE column = 'X' LIMIT 2) as u);
进而
UPDATE table SET column = 'X2' WHERE id IN(SELECT id FROM (SELECT id FROM table WHERE column = 'X' LIMIT 4) as u);
我不知道你是否在表中提供了id,但你可以使用WHERE id BETWEEN 88和90,MySQL在更新查询中不支持Offset,但你可以通过限制使用BETWEEN命令来实现