我有表pref有列值。该值具有类型文本。我想将id为7的行的值字段值复制到id为1的行的值字段。能否请您帮忙完成此操作。我知道MS SQL,但我是mySQL的新手。
create table pref
(
id int,
value text
)
答案 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...