在MySQL Update语句中使用Concat之前检查字段的内容

时间:2011-12-19 17:11:50

标签: mysql sql concatenation

我正在使用Concat更新数据库中的字段,如下所示

`fieldName`=concat( `FieldName`, ',NEW DATA')

在某些情况下,我尝试在字段中创建逗号分隔列表,例如

item 1, item 2, item 3

但除非我事先知道该字段是否为空,否则如果这是该字段中的第一个条目,则无法避免使用前置或尾随逗号。

,item 1, item 2...etc 

item 1, item 2, ... etc

有没有办法在Update语句中确定字段是否有内容之前,以避免单独查询数据库?

...或制作逗号分隔列表的更好方法!

1 个答案:

答案 0 :(得分:1)

是的,请使用case这样的表达式:

update tableName
set columnName = 
  case when LENGTH(columnName) > 1
    then select concat(columnName, ',NEW DATA')
    else select 'NEW DATA' end

如果columnName的长度大于1,则columName中有数据,因此您可以输入逗号,否则只放置新数据。