Bare lav UPDATE
når du SELECT
det på samme tid.
Skift dette:
SELECT product_name, sku, qty
FROM supplier_dropship_items
WHERE supplier_id = '3' AND status = '2';
til dette:
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;
Dette forudsætter, at du har en ID-kolonne inde i din tabel, da det er sådan den skal sættes op, og hvordan enhver normaliseret tabel vil se ud.
Rediger
Her er et link til dokumentationen om denne syntaks
Det, dette i bund og grund gør, er, mens vi forsøger at opdatere tabellen, som vi her kalder t
, kører du samtidig en select-sætning.
Denne select-sætning returnerer en resultattabel, som vi kalder navnet temp
.
Så forestil dig nu, at resultatet af din select-sætning er inden for temp
, mens hele tabellen du opdaterer er inde i t
.
Til sidst opdaterer du status
felt til 1
hvor ID
's (på disse to aliasresultatsæt) matcher