如何将文本列值从mySQL中的一行复制到另一行

时间:2011-01-21 07:37:12

标签: mysql sql sql-update

我有表pref有列值。该值具有类型文本。我想将id为7的行的值字段值复制到id为1的行的值字段。能否请您帮忙完成此操作。我知道MS SQL,但我是mySQL的新手。

create table pref
(
   id int,
   value text
)

3 个答案:

答案 0 :(得分:19)

在MySQL中,您不能使用正在更新的同一个表中的子选择,但您可以使用连接。

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

答案 1 :(得分:1)

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

答案 2 :(得分: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...