mySQL 使用另一个 table 的 concat 更新列

mySQL update column with concat of another table

经验>新手,68/m

MySQL> 5.5.46-0+deb7u1

数据库>服饰

有两个 tables> femme PRIMARY = id, colors PRIMARY = c_id

我需要修改(或更新...)tablefemme

id      Name        Fav_Colors      City        

 1      Joe         red             Athens  

 1      Rea         grey            Rome    

table colors 必须将其数据贡献给 table femme 替换上面的颜色(用一些标签调味):

c_id    Name        Pref_Color                  City        City_color 

 1      Joe         yellow                      Athens      blue        

 2      Rea         green                       Rome        black      

femme 一开始是 TRUNCATE(d) 时一切正常,导致修改后的 femme table 如下所示:

TRUNCATE TABLE `femme`;

REPLACE INTO `femme`(`id`, `name`, `Fav_Colors`, `City`)

SELECT
CONCAT ('

c_id,
Name,
<div>', colors.Pref_Color, ' - ', colors.City_color,'"</div>',
City
')
from colors;


id      Name        Fav_Colors                      City        

 1      Joe         <div>yellow - blue</div>        Athens  

 1      Rea         <div>green - black</div>        Rome    

我只需要替换 Fav_Colors 列即可,但以下内容不起作用:

REPLACE INTO `femme`(`Fav_Colors`) 
SELECT 
CONCAT ('
<div>', colors.Pref_Color, ' - ', colors.City_color,'"</div>'
')
from colors;

能否请您协助找到解决此问题的方法?谢谢。

看来您需要一个简单的 UPDATEfemme.id 是否总是对应​​于 colors.c_id?如果是这样,你可以这样做:

UPDATE femme
JOIN colors ON femme.id = colors.c_id
SET femme.Fav_Colors =
CONCAT('<div>', colors.Pref_Color, ' - ', colors.City_color,'</div>')