MySql - 使用同一个表的某些字段中的值更新表的某些字段

时间:2014-08-20 12:16:00

标签: mysql arrays

table_product_name

product_id | product_language | product_name
1            en                 apple pad
1            fr                 (empty)
2            en                 apple pod
2            fr                 (empty)
3            en                 apple mac
3            fr                 (empty)

我想创建一个更新查询,将“product”中的每个product_id从“en”行复制到(empty)product_name字段中带有“fr”的相同product_id的行。

由于

2 个答案:

答案 0 :(得分:0)

update p1
set p1.product_name = p2.product_name
from table_product_name p1
inner join table_product_name p2 on p2.product_id = p1.product_id and p2.product_language = 'en'
where p1.product_language = 'fr' 

答案 1 :(得分:0)

也许你真的不需要更新...

SELECT x.product_id
     , x.product_language
     , COALESCE(y.product_name,x.product_name) product_name 
  FROM my_table x 
  LEFT 
  JOIN my_table y 
    ON y.product_id = x.product_id 
   AND y.product_language = 'en';