sql >> Databáze >  >> RDS >> Mysql

MySQL - SELECT a poté UPDATE

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í



  1. Co je STATISTICS IO v SQL Server?

  2. Jak nainstalovat Haproxy a Keepalived

  3. SQL dotaz pro stromovou tabulku

  4. Chyba:Nelze se připojit k žádnému ze zadaných hostitelů MySQL. V aplikaci, která nepoužívá MySQL