[英]Replace a column in another table in mysql with a condition
我想替換我的數據庫新聞表產品中的標簽行,其中產品名稱等於另一個表產品中的產品名稱。
我想將標簽列從產品數據庫復制到產品數據庫標簽必須在正確的行中,就像名稱列必須匹配兩個表一樣。
我嘗試了一個查詢,但它向我發送了一個錯誤:
Table to copy = product
Table from copy products
Condition (name=name) or (slug=slug)
在兩個表中:
UPDATE product
set tags = (
select tags
FROM products
where product.name = products.name
);
它給出了一個錯誤:
Subquery returns more than 1 row
它適用於:
UPDATE product
set tags = (
select tags
FROM products
where product.id = products.id
);
我發現可以更好地理解並確保您在最終更新中最終想要的內容,同時也確保您獲得了預期的記錄。 先寫select。
select
np.name,
np.tags NowTags,
op.tags OtherTags
from
NowProduct np
JOIN OtherProduct op
on np.Name = op.Name
確認后,只需將 SELECT 更改為 UPDATE。 您可以為正在更新的表使用“別名”。 我發現最好確保您的查詢是正確的,以查看將查詢哪些記錄以及之前和您想要更新的值應該是什么。 一旦好,然后應用更新。
update np set
tags = op.tags
from
NowProduct np
JOIN OtherProduct op
on np.Name = op.Name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.