Gör bara UPDATE
när du SELECT
det samtidigt.
Ändra detta:
SELECT product_name, sku, qty
FROM supplier_dropship_items
WHERE supplier_id = '3' AND status = '2';
till detta:
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;
Detta förutsätter att du har en ID-kolumn i din tabell eftersom det är så här den ska ställas in och hur en normaliserad tabell skulle se ut.
Redigera
Här är en länk till dokumentationen om denna syntax
Vad det här gör är när vi försöker uppdatera tabellen som vi här aliasar som t
, kör du samtidigt en select-sats.
Denna select-sats returnerar en resultattabell som vi kallar namnet temp
.
Så tänk dig nu att resultatet av din select-sats är inom temp
, medan hela tabellen du uppdaterar är inuti t
.
Äntligen uppdaterar du status
fältet till 1
där ID
s (på dessa två alias resultatuppsättningar) matchar