Lourt: MYSQL - Update und Where selben value

Table A
+--------+-----------+
|   ID   |   VALUE   |
|    1   |     3     |
|    2   |     4     |
|    3   |     4     |
|    4   |     7     |
|    5   |     7     |
+--------+-----------+

UPDATE A  
SET VALUE=99  
WHERE VALUE=7

Das geht ja leider nicht:
Currently, you cannot update a table and select from the same table in a subquery

Aber wie macht man das dann?

Danke für Tipps.

  1. Aber wie macht man das dann?

    Danke für Tipps.

    Hi,

    UPDATE tabelle SET value =
    replace(value, '7', '99');

    Gruß, Frank

  2. Hallo,

    UPDATE A

    SET VALUE=99
    WHERE VALUE=7

      
    
    > Das geht ja leider nicht:  
    > Currently, you cannot update a table and select from the same table in a subquery  
      
    selbstverständlich geht das. Eine einfache WHERE-Klausel ist kein Subselect.  
      
    Freundliche Grüße  
      
    Vinzenz
    
    1. selbstverständlich geht das. Eine einfache WHERE-Klausel ist kein Subselect.

      Dachte ich mir auch grade eben. Insofern ist mein Post sogar falsch, weil es viel zuviel des "Guten" tut.

      Wenn man das löschen kann, wär ich dafür :-)

      Gruß, Frank

    2. Hallo,

      UPDATE A

      SET VALUE=99
      WHERE VALUE=7

      
      >   
      > > Das geht ja leider nicht:  
      > > Currently, you cannot update a table and select from the same table in a subquery  
      >   
      > selbstverständlich geht das. Eine einfache WHERE-Klausel ist kein Subselect.  
        
      Echt? Ich hab das getestet (via phymyadmin) mit dem Ergebnis, dass 0 Zeilen verändert werden.
      
      1. Echt? Ich hab das getestet (via phymyadmin) mit dem Ergebnis, dass 0 Zeilen verändert werden.

        Ich habs auch getestet:

        CREATE TEMPORARY TABLE m(
        m VARCHAR( 10 )
        );

        MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).

        INSERT m
        VALUES ('7'), ('9'), ('88');

        3 Zeile(n) betroffen.

        UPDATE m SET m =999 WHERE m =88;

        1 Zeile(n) betroffen.

        Gruß, Frank