0

複数の連結を使用したMysql更新の構文を理解できません。データベースに保存されている文字列の最後に文字列を追加できるようにしたいのですが、一度に複数の列に追加します。これで一度に1つの列をうまく実行できます

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構文にエラーがあります。」

各連結を区切るための構文が見つかりません。

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 に答える