Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL Update语句中使用Concat之前检查字段内容_Mysql_Sql_Concatenation - Fatal编程技术网

在MySQL Update语句中使用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语句中确定字段是否有内容,以避免

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

`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