Faites simplement la UPDATE
lorsque vous SELECT
en même temps.
Modifiez ceci :
SELECT product_name, sku, qty
FROM supplier_dropship_items
WHERE supplier_id = '3' AND status = '2';
à ceci :
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;
Cela suppose que vous avez une colonne ID dans votre table car c'est ainsi qu'elle doit être configurée et à quoi ressemblerait n'importe quelle table normalisée.
Modifier
Voici un lien vers la documentation sur cette syntaxe
Essentiellement, ce que cela fait, c'est en essayant de mettre à jour la table que nous aliasons ici en tant que t
, vous exécutez simultanément une instruction select.
Cette instruction select renvoie une table de résultats que nous aliasons avec le nom temp
.
Alors imaginez maintenant que le résultat de votre instruction select se trouve dans temp
, alors que toute la table que vous mettez à jour est à l'intérieur de t
.
Enfin, vous mettez à jour le status
champ à 1
où le ID
's (sur ces deux ensembles de résultats d'alias) correspondent