我正在使用UPDATE将简单文本插入到字段为MEDIUMTEXT(可空字段)的表中。 奇怪的是,当字段最初为空时,它不起作用。如果我手动输入至少一个字符/空格,则可以正常工作。
我想将新文本附加到字段中的现有文本中。
UPDATE pen SET
PEN_STATUS = @PenStat,
PEN_STATUS_CHANGE_REASON = CONCAT(PEN_STATUS_CHANGE_REASON,'\n',ChangeDate,':',EmployeeID,':',ChangeReason)
WHERE PEN_ID = PenID;
这是为什么?
答案 0 :(得分:5)
[[0 1 0 1]
[1 0 1 0]
[0 1 0 1]
[1 0 1 0]]`
不处理CONCAT
值。如the MySQL manual中所述:
NULL
如果任何参数为NULL,则返回NULL。
您想使用CONCAT()
处理该用例,例如:
COALESCE
答案 1 :(得分:2)
大概是因为某物是NULL
。尝试改用CONCAT_WS()
:
UPDATE pen
SET PEN_STATUS = @PenStat,
PEN_STATUS_CHANGE_REASON = CONCAT_WS('\n',
PEN_STATUS_CHANGE_REASON,
CONCAT_WS(':', ChangeDate, EmployeeID, ChangeReason
)
)
WHERE PEN_ID = PenID;
CONCAT_WS()
忽略NULL
自变量。另外,分隔符只需要列出一次。