PCG*_*PCG 0 mysql sql sql-update
我正在使用UPDATE将简单文本插入到表中,其中字段为MEDIUMTEXT(可空字段).奇怪的是,当字段最初为null时它不起作用.如果我手动输入至少一个字符/空格,那么它正在工作.
我想将新文本附加到该字段中的现有文本中.
UPDATE pen SET
PEN_STATUS = @PenStat,
PEN_STATUS_CHANGE_REASON = CONCAT(PEN_STATUS_CHANGE_REASON,'\n',ChangeDate,':',EmployeeID,':',ChangeReason)
WHERE PEN_ID = PenID;
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
CONCAT不处理NULL价值观.正如MySQL手册中所解释的那样:
CONCAT()如果任何参数为NULL,则返回NULL.
您想用来COALESCE处理该用例,例如:
UPDATE pen SET
PEN_STATUS = @PenStat,
PEN_STATUS_CHANGE_REASON = CONCAT(
COALESCE(PEN_STATUS_CHANGE_REASON, ''),
'\n',
ChangeDate,
':',
EmployeeID,
':',
ChangeReason
)
WHERE PEN_ID = PenID;
Run Code Online (Sandbox Code Playgroud)