Basta fazer o
UPDATE
quando você SELECT
isso ao mesmo tempo. Mude isso:
SELECT product_name, sku, qty
FROM supplier_dropship_items
WHERE supplier_id = '3' AND status = '2';
para isso:
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;
Isso pressupõe que você tenha uma coluna de ID dentro de sua tabela, pois é assim que ela deve ser configurada e como seria a aparência de qualquer tabela normalizada.
Editar
Aqui está um link para a documentação sobre esta sintaxe
Essencialmente, o que isso está fazendo é tentar atualizar a tabela que aqui estamos chamando de
t
, você executa simultaneamente uma instrução select. Esta instrução select está retornando uma tabela de resultados que nós aliamos com o nome
temp
. Agora imagine que o resultado da sua instrução select está dentro de
temp
, enquanto toda a tabela que você está atualizando está dentro de t
. Finalmente você atualiza o
status
campo para 1
onde o ID
's (nesses dois conjuntos de resultados de alias) correspondem