MySQL: как я могу поместить данные sh в существующие данные столбца? - PullRequest
0 голосов
/ 29 апреля 2020

у меня есть поле дб, которое я хочу использовать для отслеживания интервалов. Я хочу, чтобы pu sh завершенные интервалы в поле БД, когда они завершены. то есть:

intervals = '10'
intervals = '1020'   <-- pushing 20 onto the field
intervals = '102040'   <-- pushing 40 onto the field
intervals = '102040SP'   <-- pushing SP onto the field

значения никогда не будут уменьшаться (и порядок не имеет значения, если это фактор), поэтому я только ищу способ UPDATE поле, но я понятия не имею, как это сделать, потому что UPDATE tbl SET ... просто перезаписывает существующее содержимое. я посмотрел на CONCAT, но это работает с переменными, которые предоставляет пользователь, а не с существующими данными и дополнительными данными пользователя. если бы я написал какой-нибудь код PSEUDO, он мог бы выглядеть так:

UPDATE tbl PUSHTO intervals VALUE newInterval WHERE id='id' AND date='date'

. кто-нибудь может помочь мне здесь? должен быть способ сделать это. :)

1 Ответ

1 голос
/ 29 апреля 2020

Обновление с конкатенацией - вот что вам нужно:

UPDATE tbl
SET interval = CONCAT(interval, newInterval)
WHERE id = 'id' AND date = 'date';

Если вы хотите выполнить обновление даже в том случае, если newInterval может быть null, вы можете попробовать:

UPDATE tbl
SET interval = CONCAT(interval, COALESCE(newInterval, ''))
WHERE id = 'id' AND date = 'date';
...