Pregunta

¿Es posible ejecutar un comando ACTUALIZAR en mysql 5.0 con una selección secundaria?

El comando que me gustaría ejecutar es este:

UPDATE book_details
SET live = 1 
WHERE ISBN13 = '(SELECT ISBN13 FROM book_details_old WHERE live = 1)';

ISBN13 se almacena actualmente como una cadena.

Esto debería estar actualizando 10k + filas.

Gracias,

William

¿Fue útil?

Solución

Solo un pequeño cambio y lo tienes:

UPDATE book_details
SET live = 1 
WHERE ISBN13 in (SELECT ISBN13 FROM book_details_old WHERE live = 1);

Otros consejos

UPDATE table1 t1, table2 t2
SET t1.field_to_change = t2.field_with_data
WHERE t1.field1 = t2.field2;
UPDATE book_details AS bd, book_details_old AS old
SET bd.live=1  
WHERE bd.isbn13=old.isbn13  
AND old.live=1;

Para actualizar una tabla a partir de datos en otra tabla

ACTUALIZAR table1, table2 SET table1.field1 = table2.field1 donde table1.id = table2.id

EX. ACTUALIZAR transacción, miembro SET transaction.Memberid = member.memberId DONDE transaction.CardId = member.CardId;

Para actualizar datos de otra tabla

UPDATE  tab t1
SET     t1.company_name = t2.company_name
FROM    tab t2
WHERE   t1.id = t2.id
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top