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í