Basta fare UPDATE
quando SELECT
allo stesso tempo.
Cambia questo:
SELECT product_name, sku, qty
FROM supplier_dropship_items
WHERE supplier_id = '3' AND status = '2';
a questo:
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;
Questo presuppone che tu abbia una colonna ID all'interno della tabella poiché è così che dovrebbe essere impostata e come sarebbe qualsiasi tabella normalizzata.
Modifica
Ecco un link per la documentazione su questa sintassi
In sostanza, ciò che sta facendo è cercare di aggiornare la tabella che qui stiamo alias come t
, esegui contemporaneamente un'istruzione select.
Questa istruzione select restituisce una tabella dei risultati che chiamiamo alias con il nome temp
.
Quindi ora immagina che il risultato della tua istruzione select sia all'interno di temp
, mentre l'intera tabella che stai aggiornando è all'interno di t
.
Finalmente aggiorni lo status
campo a 1
dove il ID
's (su questi due set di risultati alias) corrispondono