sql >> Database teknologi >  >> RDS >> Mysql

MySQL - VÆLG og OPDATER

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



  1. Hvordan rettes Ora-01427 enkeltrækkes underforespørgsel returnerer mere end én række i udvalgte?

  2. Hvornår skal jeg IKKE bruge mysql_real_escape_string

  3. Sådan udføres en Accent Sensitive-søgning i MySql

  4. MySQL-opdatering med vælg fra en anden tabel