Esto también funciona si desea transferir valor anterior a otra columna y actualizar la primera de ellas: UPDATE table SET columnA = 'new value', columnB = columnA. Como dice otra respuesta: no olvide la cláusula WHERE para actualizar solo lo que se necesita.
Carl di Ortus
55
Estoy pensando en un proceso complejo haciendo un ciclo en cada registro cuando la respuesta es tan simple
deFreitas
66
@deFreitas Un hombre sabio me dijo: si estás pensando en escribir un bucle para lograr algo en SQL, lo estás haciendo mal.
Daniel Patrick
95
UPDATE table_name SET
destination_column_name=orig_column_name
WHERE condition_if_necessary
@ Mark, esto realmente tiene sentido, ¿por qué se rechaza esto? Tuve una situación en la que necesito copiar un valor de fecha de una columna a otras columnas, y solo se aplica a ALGUNAS de las columnas, y no a todas. Por lo tanto, sería necesario tener un DONDE en la declaración.
finnTheHumin
55
@finnTheHuman La pregunta pregunta cómo "copiar datos de todos los registros" que la respuesta anterior responde correctamente para que esto no agregue nada
mmmmmm
77
@ Mark "¿Cómo difiere esto de la respuesta aceptada anterior", tiene una cláusula WHERE. "así que esto no agrega nada", no estoy de acuerdo, agrega algo. Es un buen punto incluir la cláusula WHERE SI ES NECESARIO. deberíamos ser responsables de las respuestas a votos negativos. los que odian
van a
En mi caso, agregué una columna last_seen. UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
luckydonald
No estoy de acuerdo con uno de ustedes. ¡Pero no estoy dispuesto a decir quién !. Donde la cláusula funciona como un regalo
Andrew Day
0
Esto actualizará todas las filas en esas columnas si el modo seguro no está habilitado.
UPDATE table SET columnB = columnA;
Si el modo seguro está habilitado, deberá usar una cláusula where. Yo uso la clave primaria como mayor que 0, básicamente todo se actualizará
UPDATE table SET columnB = columnA where table.column>0;
Respuestas:
Qué tal esto
Esto actualizará cada fila.
fuente
UPDATE table SET columnA = 'new value', columnB = columnA
. Como dice otra respuesta: no olvide la cláusula WHERE para actualizar solo lo que se necesita.fuente
UPDATE user SET last_seen = first_seen WHERE last_seen IS NULL
Esto actualizará todas las filas en esas columnas si el modo seguro no está habilitado.
UPDATE table SET columnB = columnA;
Si el modo seguro está habilitado, deberá usar una cláusula where. Yo uso la clave primaria como mayor que 0, básicamente todo se actualizará
UPDATE table SET columnB = columnA where table.column>0;
fuente