mysql - 在 MySQL 更新语句中使用 Concat 之前检查字段内容

标签 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 语句中避免单独查询数据库?

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

最佳答案

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

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

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

关于mysql - 在 MySQL 更新语句中使用 Concat 之前检查字段内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8564874/

相关文章:

c# - C# 中的数组串联

postgresql - 在 Postgres 中连接行

c++ - 这两个C++语句串联一个字符串有什么区别?

php - MySQL 自动提交与 begin_transaction

MySQL 正则表达式匹配

c# - DbContext.Database.SqlQuery 返回一些空对象

mysql - 具有多个条件的 SQL QUERY JOIN

MySQL - 返回同一订单 ID 的多行

mysql - 使用 xtrabackup 恢复 mysql 的物理备份

mysql - 使用首字母查找名称 - MySQL