2011-01-21 75 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... 
相关问题