У меня есть такая таблица
| id_1 | id_2 | new |
| 1 | 1 | 1 |
| 1 | 2 | 1 |
| 1 | 3 | 1 |
Теперь я хочу добавить больше строк и обновить старые строки, имеющие unique key
на [id_1, id_2]
, поэтому я делаю эти запросы
UPDATE table
SET new = 0
WHERE id_1 = 1
---
INSERT INTO table (id_1, id_2, new)
VALUES (1, 1, 1), (1, 3, 1), (1, 4, 1)
ON DUPLICATE KEY UPDATE new = 1
поэтому я получил эту таблицу, потому что я не обновил id_2 = 2
строку
| id_1 | id_2 | new |
| 1 | 1 | 1 |
| 1 | 2 | 0 |
| 1 | 3 | 1 |
| 1 | 4 | 1 |
как я могу сделать это более эффективно и, возможно, в одном запросе, как
INSERT INTO table (id_1, id_2, new)
VALUES (1, 1, 1), (1, 3, 1), (1, 4, 1)
ON DUPLICATE KEY
UPDATE (new = 0 WHERE id_1 = 1) AND UPDATE (new = 1)