MySQL ON DUPLICATE KEY UPDATE и CONCAT
У меня есть запрос (Code
это PRIMARY KEY
):
INSERT INTO table (Code, ... events)
VALUES
(1, ... CONCAT(events, 'BAR')),
(2, ... CONCAT(events, 'BAR')),
...
ON DUPLICATE KEY
UPDATE ... events = VALUES(events)
Мое намерение состоит в том, чтобы events
вставляемое значение объединяется с существующим значением, если для данного ключа уже есть строка.
С моим запросом, принимая существующее значение events
является FOO
, новый events
значения всегда 'BAR'
вместо 'FOOBAR'
,
Как правильно добиться того, чего я хочу?
1 ответ
Решение
Чтобы объединить новое значение со старым, переместите CONCAT
позвонить в UPDATE
:
INSERT INTO table (Code, ... events)
VALUES
(1, ... 'BAR'), -- insert plain values
(2, ... 'BAR'),
...
ON DUPLICATE KEY
UPDATE ... events = CONCAT(events, VALUES(events)) -- concat if key same