Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - AUSWÄHLEN dann UPDATE

Führen Sie einfach das UPDATE durch wenn Sie SELECT gleichzeitig.

Ändern Sie dies:

SELECT product_name, sku, qty 
FROM supplier_dropship_items 
WHERE supplier_id = '3' AND status = '2';

dazu:

UPDATE supplier_dropship_items as t, 
(
    SELECT id, product_name, sku, qty 
    FROM supplier_dropship_items 
    WHERE supplier_id = '3' AND status = '2'
) as temp
SET status = '1' WHERE temp.ID = t.ID;

Dies setzt voraus, dass Sie eine ID-Spalte in Ihrer Tabelle haben, da sie so eingerichtet werden sollte und wie jede normalisierte Tabelle aussehen würde.

Bearbeiten

Hier ist ein Link für die Dokumentation zu dieser Syntax

Im Wesentlichen versucht dies, die Tabelle zu aktualisieren, die wir hier als t aliasieren , führen Sie gleichzeitig eine select-Anweisung aus.
Diese Select-Anweisung gibt eine Ergebnistabelle zurück, die wir mit dem Namen temp aliasieren .
Stellen Sie sich nun vor, das Ergebnis Ihrer select-Anweisung befindet sich in temp , während sich die gesamte Tabelle, die Sie aktualisieren, in t befindet .
Abschließend aktualisieren Sie den status Feld auf 1 wobei die ID 's (in diesen beiden Alias-Ergebnismengen) stimmen überein