Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - SELECT и след това UPDATE

Просто направете UPDATE когато SELECT в същото време.

Променете това:

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

към това:

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;

Това предполага, че имате колона с идентификационен номер вътре в таблицата си, тъй като ето как трябва да бъде настроена и как би изглеждала всяка нормализирана таблица.

Редактиране

Ето връзка за документацията за този синтаксис

По същество това, което прави, е докато се опитваме да актуализираме таблицата, която тук наричаме псевдоним като t , едновременно изпълнявате оператор select.
Този оператор select връща таблица с резултати, която използваме псевдоним с името temp .
И така, сега си представете, че резултатът от вашия оператор select е вътре в temp , докато цялата таблица, която актуализирате, е вътре в t .
Накрая актуализирате status поле до 1 където ID (на тези два резултатни набора псевдоними) съвпадат



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете SUM от подзаявката, докато използвате whereHas в Laravel

  2. MySQL:Алтернативи за ПОРЪЧВАНЕ ПО RAND()

  3. Как да преброя всички NULL стойности в таблица?

  4. проверка на потребителското състояние (активен, неактивен) на уеб страница

  5. mysql структура за публикации и коментари