2011-01-21 37 views
6

我有表列前綴具有列值。該值具有文字類型。我想將ID爲7的行的值字段值複製到ID爲1的行的值字段。您可以幫助如何做到這一點。我知道MS SQL,但我是mySQL的新手。如何在mySQL中將文本列值從一行復制到另一行

create table pref 
(
    id int, 
    value text 
) 
+0

您是否嘗試過爲MS SQL編寫的SQL?什麼失敗了? – sarnold 2011-01-21 07:48:44

回答

14

在MySQL中,您不能使用正在更新的同一張表中的子查詢,但可以使用連接。

UPDATE pref AS target 
LEFT JOIN pref AS source ON source.id = 7 
     SET target.value = source.value 
    WHERE target.id = 1; 
+0

這工作,謝謝。 – mohang 2011-01-21 12:56:24

2
UPDATE 
    pref 
SET 
    value = (SELECT value WHERE id = 7) 
WHERE 
    id = 1 
0

以我爲例,我試圖從一列在同一個表複製的加密值到一個空場的另一行。在這種情況下,我需要將約翰的PIN碼複製到Jane的PIN碼中。

@mohang說得對。這裏是我的改編:)

name pin 

john sdhjduwhdowodw7d87e838g83g8g3of... 
jane  

    //copy from field with value into empty field 

UPDATE my_table AS target 
LEFT JOIN my_table AS source ON source.pin != "" 
SET target.pin = source.pin 
WHERE target.pin = ""; 

    // Hurray, it works! 

name pin 

john sdhjduwhdowodw7d87e838g83g8g3of... 
jane sdhjduwhdowodw7d87e838g83g8g3of... 
相關問題