如何使用concat()在单个mysql更新中附加到多个列

whi*_*415 0 mysql concat multiple-columns

我无法弄清楚多重连接的Mysql更新的语法.我希望能够将一个字符串附加到存储在数据库中的字符串的末尾,但是同时将其添加到多个列中.我可以一次做一列就好了

UPDATE `table1`.`column1` SET `category1` = CONCAT(category1,'$value[0]',) WHERE `id`='$id';  
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在同一个表中的多个列中执行此操作时,会出现语法错误.

UPDATE `table1`.`column1`
SET `category1` = CONCAT(category1,'5'),
    `category2` = CONCAT(category2,'5'),
    `category3` = CONCAT(category3,'5'),
    `category4` = CONCAT(category4,'5'),
    `category5` = CONCAT(category5,'5'),
    `comments` = CONCAT(comments, 'jfsaklfsad')
WHERE `for_student_id`='46'; 
Run Code Online (Sandbox Code Playgroud)

"你的SQL语法有错误;"

我找不到分隔每个concat的语法.

Die*_*lló 6

根据MySQL文档,UPDATE不支持这样的语法.您必须在SET之前引用不带列的表名:

UPDATE `table1`
SET `category1` = CONCAT(category1,'5'),
    `category2` = CONCAT(category2,'5'),
    `category3` = CONCAT(category3,'5'),
    `category4` = CONCAT(category4,'5'),
    `category5` = CONCAT(category5,'5'),
    `comments`  = CONCAT(comments, 'jfsaklfsad')
WHERE `for_student_id`='46'; 
Run Code Online (Sandbox Code Playgroud)