Вопрос по mysql, sql – Смещение LIMIT или OFFSET в SQL-запросе UPDATE

5

У меня есть таблица, похожая на эту:

| 0 | X  |
| 1 | X  |
| 2 | X  |
| 3 | Y  |
| 4 | Y  |
| 5 | X  |
| 6 | X  |
| 7 | Y  |
| 8 | Y  |
| 9 | X  |

Я хотел бы заменить первые 2 вхожденияX сX1а затем 4 следующих вхождения сX2 так что итоговая таблица выглядит так:

| 0 | X1 |
| 1 | X1 |
| 2 | X2 |
| 3 | Y  |
| 4 | Y  |
| 5 | X2 |
| 6 | X2 |
| 7 | Y  |
| 8 | Y  |
| 9 | X2 |

Таблица, о которой идет речь, конечно, намного больше, и, следовательно, число вхождений также будет выше, поэтому ручное редактирование не является решением.

Я хотел бы сделать что-то вроде этого:

UPDATE table SET column = 'X' WHERE column = 'X2' LIMIT 90, 88

но, к сожалению, MySQL, похоже, не поддерживает OFFSET в запросах UPDATE ... Есть ли способ сделать это?

Ваш Ответ

2   ответа
7

Error: User Rate Limit ExceededWHERE id BETWEEN 88 AND 90Error: User Rate Limit ExceededBETWEENError: User Rate Limit Exceeded

4

Error: User Rate Limit Exceeded

UPDATE table SET column = 'X1' WHERE id IN(SELECT id FROM (SELECT id FROM table WHERE column = 'X' LIMIT 2) as u);

Error: User Rate Limit Exceeded

UPDATE table SET column = 'X2' WHERE id IN(SELECT id FROM (SELECT id FROM table WHERE column = 'X' LIMIT 4) as u);

Похожие вопросы