Это также будет работать , если вы хотите передать старое значение в другой колонке и обновлять первый: UPDATE table SET columnA = 'new value', columnB = columnA. Как говорит другой ответ - не забывайте предложение WHERE, чтобы обновить только то, что нужно.
Карл ди Ортус
5
Я думаю, что в какой-то сложной процедуре я делаю цикл для каждой записи, когда ответ так прост
deFreitas
6
@deFreitas Один мудрец сказал мне: если вы думаете о написании цикла для выполнения чего-то в SQL, вы делаете это неправильно.
Даниэль Патрик
95
UPDATE table_name SET
destination_column_name=orig_column_nameWHERE condition_if_necessary
@ Марк, это на самом деле имеет смысл, почему за это проголосовали? У меня была ситуация, когда мне нужно скопировать значение даты из одного столбца в другие столбцы, и это относится только к НЕКОТОРЫМ столбцам, а не ко всем. Поэтому наличие WHERE в утверждении было бы необходимо.
finnTheHumin
5
@finnTheHuman Вопрос состоит в том, как «скопировать данные из всех записей», на которые предыдущий ответ отвечает правильно, так что это ничего не добавляет
мммммм
7
@Mark "Как это отличается от старого принятого ответа", у него есть предложение WHERE. «Так что это ничего не добавляет», я не согласен, это что-то добавляет. Хорошо бы включить пункт ГДЕ ЕСЛИ НЕОБХОДИМО. мы должны нести ответственность за ответы на голосование. ненавистники
собираются
В моем случае я добавил столбец last_seen. UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
luckydonald
Я не согласен с одним из вас. Но не хочет сказать, кто! Где пункт работает как удовольствие ты
Эндрю Дэй
0
Это обновит все строки в этих столбцах, если безопасный режим не включен.
UPDATE table SET columnB = columnA;
Если безопасный режим включен, то вам нужно использовать предложение where. Я использую первичный ключ, так как больше 0 в основном все будет обновляться
UPDATE table SET columnB = columnA where table.column>0;
Ответы:
Как насчет этого
Это будет обновлять каждую строку.
источник
UPDATE table SET columnA = 'new value', columnB = columnA
. Как говорит другой ответ - не забывайте предложение WHERE, чтобы обновить только то, что нужно.источник
UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
Это обновит все строки в этих столбцах, если безопасный режим не включен.
UPDATE table SET columnB = columnA;
Если безопасный режим включен, то вам нужно использовать предложение where. Я использую первичный ключ, так как больше 0 в основном все будет обновляться
UPDATE table SET columnB = columnA where table.column>0;
источник