Как я могу обновить дубликат ключа только при этой возможности, если текущее значение нескольких столбцов является фиксированным значением.
Как таблица:
a | b | c | key1 | key2
- - - - - -------------
1 | 0 | 0 | 1 | 2
2 | 3 | 4 | 1 | 3
Я хочу обновить только те строки, где значение столбцов 1 - 0 - 0.
Мое решение работает неправильно, поскольку оно обновляет только первый столбец, я думаю, это потому, что после обновления первого столбца второй IF равен false.
INSERT IGNORe INTO testtable (a, b, c, key1, key2) VALUES (100, 200, 300, 1, 2)
ON DUPLICATE KEY UPDATE
a=IF(a=1 AND b=0 AND c=0, VALUES(a), a),
b=IF(a=1 AND b=0 AND c=0, VALUES(b), b),
c=IF(a=1 AND b=0 AND c=0, VALUES(c), c);
INDEX KEY: key1 + key2, поэтому, если он одинаковый и текущая строка существует с 1-0-0, обновите.