Моя таблица:
----------------------------
| valueA | valueB | valueC |
----------------------------
| ... | ... | ... |
| ... | ... | ... |
- Первичный ключ (значение A, значение B)
- Я хочу вставить значения или обновить значение C если запись уже существует
Мой код:
INSERT INTO myTable (valueA, valueB, valueC) VALUES
(1, 2, 1),
(1, 2, 2),
(2, 1, 3),
(3, 4, 4)
on duplicate key update valueC = 5;
Результат этого утверждения:
----------------------------
| valueA | valueB | valueC |
----------------------------
| 1 | 2 | 5 |
| 2 | 1 | 3 |
| 3 | 4 | 4 |
Я не просто хочу обновить, если новое значение A = старое значение A и новое значение B = старое значение B, но также, если новое значение A = старое значение B и новое значение B = старое значение A.
В моем Пример таблицы (1, 2, 1), (1, 2, 2) и (2, 1, 3) будет дубликатом. Не только (1, 2, 1) и (1, 2, 2).
Вот как это должно выглядеть:
----------------------------
| valueA | valueB | valueC |
----------------------------
| 1 | 2 | 5 |
| 3 | 4 | 4 |
Как я могу сделать это с как можно меньшим количеством утверждений? Заранее спасибо.