簡體   English   中英

用條件替換mysql中另一個表中的一列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM