Mysql 当产品id相同时,将数据复制到列
我需要复制同一产品的产品描述规格(列名:product_description_second),但使用不同的语言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 但这没有意义,因为我并没有真正确定哪个描述要复
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。对此,我很抱歉,感谢您澄清了其中的区别:)