在MySQL Update语句中使用Concat之前检查字段内容
我正在使用Concat更新数据库中的字段,如下所示在MySQL Update语句中使用Concat之前检查字段内容,mysql,sql,concatenation,Mysql,Sql,Concatenation,我正在使用Concat更新数据库中的字段,如下所示 `fieldName`=concat( `FieldName`, ',NEW DATA') 但在某些情况下,我试图在字段中创建一个逗号分隔的列表,例如 item 1, item 2, item 3 但是,除非我事先知道该字段是否为空,否则如果这是该字段中的第一个条目,我将不可避免地使用前面的逗号或后面的逗号 ,item 1, item 2...etc 或 在我添加数据之前,有没有一种方法可以在Update语句中确定字段是否有内容,以避免
`fieldName`=concat( `FieldName`, ',NEW DATA')
但在某些情况下,我试图在字段中创建一个逗号分隔的列表,例如
item 1, item 2, item 3
但是,除非我事先知道该字段是否为空,否则如果这是该字段中的第一个条目,我将不可避免地使用前面的逗号或后面的逗号
,item 1, item 2...etc
或
在我添加数据之前,有没有一种方法可以在Update语句中确定字段是否有内容,以避免查询单独访问数据库
。。。或者是制作逗号分隔列表的更好方法 是的,使用如下表达式:
update tableName
set columnName =
case when LENGTH(columnName) > 1
then select concat(columnName, ',NEW DATA')
else select 'NEW DATA' end
如果columnName的长度大于1,则columnName中有数据,因此可以使用逗号,否则只能使用新数据。谢谢@aF,这看起来很完美,但我遇到了语法错误。尝试一次更新多个字段
“update tableName SET mobile=”&mobile&“”,invoiceList=case当len(invoiceList)>1,然后concat(invoiceList),“¤tInvoiceNumber&“')else'¤tInvoiceNumber&“end
是相关的代码段。我一直得到“检查len(in)附近的语法”
update tableName
set columnName =
case when LENGTH(columnName) > 1
then select concat(columnName, ',NEW DATA')
else select 'NEW DATA' end