Как скопировать значение текстового столбца из одной строки в другую строку в mySQL
У меня есть таблица pref, имеющая значение столбца. Это значение имеет тип text. Я хочу скопировать значение поля значения строки с идентификатором 7 в поле значения строки с идентификатором 1. Не могли бы вы помочь, как это сделать? Я знаю MS SQL, но я новичок в mySQL.
create table pref
(
id int,
value text
)
3 ответов
в MySQL вы не можете использовать подвыбор из той же таблицы, которую вы обновляете, но вы можете использовать соединение.
UPDATE pref AS target
LEFT JOIN pref AS source ON source.id = 7
SET target.value = source.value
WHERE target.id = 1;
в моем случае я пытался скопировать зашифрованное значение из одной строки в пустое поле в другой строке той же таблицы. В этом случае мне нужно было скопировать булавку Джона в булавку Джейн.
@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...