Stačí provést UPDATE když SELECT to ve stejnou dobu.
Změňte toto:
SELECT product_name, sku, qty
FROM supplier_dropship_items
WHERE supplier_id = '3' AND status = '2';
na toto:
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;
To za předpokladu, že máte v tabulce sloupec ID, protože takto by měl být nastaven a jak by vypadala jakákoli normalizovaná tabulka.
Upravit
Zde je odkaz na dokumentaci k této syntaxi
V podstatě se to dělá při pokusu o aktualizaci tabulky, kterou zde označujeme jako t , současně spustíte příkaz select.
Tento příkaz select vrací výsledkovou tabulku, kterou nazýváme aliasem temp .
Nyní si tedy představte, že výsledek vašeho příkazu select je uvnitř temp , zatímco celá tabulka, kterou aktualizujete, je uvnitř t .
Nakonec aktualizujete status pole na 1 kde ID 's (na těchto dvou sadách výsledků aliasů) se shodují