Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - WYBIERZ, a następnie AKTUALIZUJ

Po prostu wykonaj UPDATE kiedy SELECT w tym samym czasie.

Zmień to:

SELECT product_name, sku, qty 
FROM supplier_dropship_items 
WHERE supplier_id = '3' AND status = '2';

do tego:

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;

Zakłada się, że w tabeli znajduje się kolumna ID, ponieważ tak powinna być skonfigurowana i jak każda znormalizowana tabela będzie wyglądać.

Edytuj

Oto link do dokumentacji tej składni

Zasadniczo robi to podczas próby aktualizacji tabeli, którą tutaj nazywamy aliasem t , jednocześnie uruchamiasz instrukcję SELECT.
Ta instrukcja select zwraca tabelę wyników, której aliasem jest nazwa temp .
A teraz wyobraź sobie, że wynik Twojej instrukcji select znajduje się w temp , podczas gdy cała aktualizowana tabela znajduje się w t .
Na koniec aktualizujesz status pole do 1 gdzie ID 's (na tych dwóch zestawach wyników aliasów) są zgodne



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak korzystać z Coalesce w MySQL

  2. Nie można wydać instrukcji manipulacji danymi za pomocą executeQuery()

  3. Zrzut NodeJS MySQL

  4. Kod błędu MySQL 1235

  5. Jak uciec ze specjalnych znaków SQL w wyrażeniach regularnych w Mysql