Mysql

SQL如何將文本從一個表(從一列)複製到另一個表(到一列),最好使用IF目標列為空

  • December 2, 2019

我在數據庫中有兩個表,我希望將文本從表的一列複製到另一個表的另一列。

假設我有兩個名為“ articles”和“ info”的表。我必須將articles.article列文本複製到info.description相同的文章中,這些文章可以通過所謂的“代號”而不是 ID 來辨識。優選地IF,該列info.description是空的。我打算將WHERE category = 4自己限制在一些文章中,但這不應該是一個問題,如果IF陳述是正確的,甚至是不必要的。

表格佈局(不完整,但足夠在這裡):

Articles (ID, Codename (VARCHAR), Article (VARCHAR)) 
Info (ID2, Codename (VARCHAR), Description (VARCHAR))

所以基本上,我想給沒有描述的文章一個基本的描述,包括他們的名字和一些數據,寫在名字旁邊。

使用 UPDATE FROM 語法:

UPDATE Info
SET Description = (Select Article
                  FROM Articles 
                  WHERE Info.Codename = Articles.Codename)
WHERE Description IS NULL;

http://rextester.com/EYIG7377

儘管之前的答案是正確的,而且我很感謝@McNets,但我找到了一種更簡單的方法。

UPDATE info i, articles a
SET i.Description = a.Article
WHERE i.Codename = a.Codename
AND i.Description IS NULL;

引用自:https://dba.stackexchange.com/questions/160836