Mysql
SQL如何將文本從一個表(從一列)複製到另一個表(到一列),最好使用IF目標列為空
我在數據庫中有兩個表,我希望將文本從表的一列複製到另一個表的另一列。
假設我有兩個名為“
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;
儘管之前的答案是正確的,而且我很感謝@McNets,但我找到了一種更簡單的方法。
UPDATE info i, articles a SET i.Description = a.Article WHERE i.Codename = a.Codename AND i.Description IS NULL;