MySQL: cómo copiar un dato de una fila a otra fila de la misma tabla

He intentado ingenuamente hacer esto:

mysql> UPDATE wp_sitemeta SET meta_value=(SELECT P2.meta_value FROM wp_sitemeta P2 WHERE P2.site_id="8" AND P2.meta_key="illegal_names") WHERE site_id="7" AND meta_key="illegal_names";

pero al SGBD no le ha gustado:
ERROR 1093 (HY000): You can't specify target table 'wp_sitemeta' for update in FROM clause

Se puede usar una subconsulta para asignaciones dentro del comando UPDATE, pero no se puede usar la misma tabla para la cláusula FROM de la subconsulta y el objetivo a actualizar. Tras leer esta historia, lo he resuelto usando una tabla temporal:

mysql> UPDATE wp_sitemeta SET meta_value=(SELECT meta_value FROM (SELECT meta_value FROM wp_sitemeta WHERE site_id="8" AND meta_key="illegal_names") AS X) WHERE site_id="7" AND meta_key="illegal_names";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

9 Responses to “MySQL: cómo copiar un dato de una fila a otra fila de la misma tabla”

  1. gcshxsg dice:

    DgHYIT zohhducfjllq, [url=http://xzvgygbxhvik.com/]xzvgygbxhvik[/url], [link=http://xraysuimipeg.com/]xraysuimipeg[/link], http://ibxpajstxyxj.com/

  2. Hey there! Wonderful idea, but might this genuinely function?

    REBECCA

  3. biene dice:

    generic xanax jhifv generic valium 9090 buy phentermine euksku doxycycline qygpkc

  4. liliya dice:

    retin zoloft hve ultram pain pill 31043 buy accutane >:-))

  5. tandestiny dice:

    xanax 810 phentermine online 8066 ambien wyezo ultram etugdu internet pharmacy propecia soma zoloft %OOO

  6. proszynski dice:

    acomplia 36775 aciphex :-D buy xanax online zselpm accutane 743

  7. bonnie dice:

    buy xanax 4741 tramadol 8-) retin a 28846 carisoprodol 006

  8. adnaw dice:

    cialis for sale 8]]] valium online ulyaif doxycycline 222

  9. arina dice:

    buy accutane 0671 buy accutane 7169 order doxycycline 699 what is xanax 8-P

Leave a Reply