Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当产品id相同时,将数据复制到列_Mysql_Sql - Fatal编程技术网

Mysql 当产品id相同时,将数据复制到列

Mysql 当产品id相同时,将数据复制到列,mysql,sql,Mysql,Sql,我需要复制同一产品的产品描述规格(列名:product_description_second),但使用不同的语言id(两者都是英语,只是不同的国家) 因此,我: UPDATE products_description SET products_description_second = products_description_second WHERE language_id=3 AND products_id = products_id 但这没有意义,因为我并没有真正确定哪个描述要复

我需要复制同一产品的产品描述规格(列名:product_description_second),但使用不同的语言id(两者都是英语,只是不同的国家)

因此,我:

UPDATE products_description SET
    products_description_second = products_description_second
WHERE language_id=3 AND products_id = products_id 
但这没有意义,因为我并没有真正确定哪个描述要复制到哪个描述,但我只想将语言id为3的描述设置为与语言id为1的描述相同


而且在我的约束条件中,我设置了product\u id=product\u id,这也没有意义,我不认为你们只需要将表本身连接起来

UPDATE pd1 SET
     pd1.products_description_second = pd2.products_description_second
from products_description pd1 
    join products_description pd2 on pd1.products_id = pd2.products_id 
                                and  pd2.language_id = 3
WHERE pd2.language_id = 1

类似于此,请在更新之前进行选择,以确保它符合您的要求,这是您在T-SQL中的操作方式。此示例可能有助于您区分源表和目标表,即使它们是相同的:

update 
    product_description dest_pd 
  set 
    dest_pd.product_description_second = (
      select 
          src_pd.product_description_second 
        from 
          product_description src_pd 
        where 
          src_pd.products_id = dest.products_id
          and src_pd.language_id = 3
  )

您使用的是哪种DBMS?@a_horse_,名称为phpmyadminth它不是DBMS,而是DBMS客户机工具。但是,由于它支持的唯一数据库是MySQL,所以可以安全地假设您正在使用MySQL。对此,我很抱歉,感谢您澄清了其中的区别:)