2014-08-29 75 views
0

有一個小問題,在我不能換我的頭周圍..文本追加到另一個表

我有2個表,1桌那裏是一個YouTube鏈接,我需要追加到另一個但是並不是每個記錄都有Youtube鏈接,這意味着我需要檢查兩個表中的名稱是否相同(WHERE name1 = name2?)但是我怎樣才能將表格文本追加到表2中的現有文本?像這樣?

UPDATE table2 SET text2 = (text2 + '/n' + table1.text1) WHERE name1 = name2? 

如果有人可以幫助我,那就太棒了!

編輯:

所以我摸索了一下與查詢:

SELECT 
'Kleding'.'Naam', 
'jos_virtuemart_products_nl_nl'.'product_name', 
CONCAT_WS('/n', 'jos_virtuemart_products_nl_nl'.'product_desc', 'Kleding'.'Youtube_link') 
FROM 
    'jos_virtuemart_products_nl_nl' as 't2' 
INNER JOIN 'Kleding' as 't1' 
ON 't2'.'product_name' = 't1'.'Naam'; 

但這個查詢是不正確一些奇怪的原因。我找不到爲什麼它是不正確的。

回答

0

您可以use INNER JOIN in UPDATE

UPDATE 
    table2 as t2 INNER JOIN table1 as t1 ON t2.name = t1.name 
SET 
    t2.text2 = CONCAT_WS('/n', t2.text2, t1.text1); 

P.S:也許通過'/n'你的意思是'\n'

P.P.S:在任何重大數據更改操作之前,我建議你to backup你的數據庫。


UPDv1:

測試您的最終結果集與SELECT

SELECT 
    `t1`.`name` as `t1-name`, 
    `t2`.`name` as `t2-name`, 
    CONCAT_WS('/n', `t2`.`text2`, `t1`.`text1`) as `changes` 
--^here you will see what comes up 
FROM 
    `table2` as `t2` INNER JOIN `table1` as `t1` ON `t2`.`name` = `t1`.`name` 
-- WHERE possibly more conditions to meet your requirements 

如果您管理的TE獲得額外WHERE條件合適的結果集,然後將其移動到UPDATE聲明。

+0

是啊,這看起來像它.. Altough我有一個小問題,不是每個條目有一個YouTube鏈接,有時是空的,或者有時是0,我這樣做的權利?: UPDATE 表2爲T2 INNER JOIN表1 as t1 ON t2.name = t1.name WHERE t2!= 0 OR NULL SET t2.text2 = CONCAT_WS('/ n',t2.text2,t1.text1); – 2014-08-29 08:15:56

+0

@HuubS先嚐試'SELECT',看看數據。如果它看起來像你想看到它,然後'更新'。我會盡快用'SELECT'語句改變我的帖子。 – BlitZ 2014-08-29 08:20:00

+0

@HuubS更新了我的建議。 – BlitZ 2014-08-29 08:24:07