0

我无法弄清楚具有多个连接的 Mysql 更新的语法。我希望能够将一个字符串附加到存储在数据库中的字符串的末尾,但同时对多个列执行此操作。我可以一次做一列就好了

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

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

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'; 

“您的 SQL 语法有错误;”

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

4

1 回答 1

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'; 
于 2012-07-19T20:57:11.527 回答