2014-04-26 2 views
1

J'ai fait quelques recherches et j'ai trouvé qu'il n'est pas tout à fait possible d'imbriquer délibérément une requête SELECT avec une instruction UPDATE. J'ai vu qu'il existe des solutions de contournement possibles, impliquant la création d'une copie virtuelle temporaire de la table, car apparemment, vous ne pouvez pas mettre à jour et sélectionner dans la même table en même temps.Requête MySQL UPDATE avec une requête SELECT imbriquée

Je n'ai pas réussi à faire fonctionner les exemples, alors je suis revenu à la case départ. Ci-dessous vous verrez la représentation visuelle de ce que je voudrais si c'était simple.

La requête SELECT imbriquée renvoie 4 ou 5 identifiants, et j'aimerais mettre à jour une colonne à 0 pour chacune de ces lignes. J'espère que ce que je veux faire est logique.

Merci pour votre aide et votre perspicacité à l'avance.

UPDATE 
    `my_table` 
SET 
    `my_column_1` = 0 
WHERE 
    `id` 
IN (
    SELECT 
     `id` 
    FROM 
     `my_table` 
    WHERE 
     `my_column_2` = 35 
    AND 
     `my_column_3` = 3 
    AND 
     `id` != 136 
) 

Répondre

3

Pourquoi ne pas simplement utiliser WHERE comme ceci:

UPDATE 
    `my_table` 
SET 
    `my_column_1` = 0 
WHERE 
    `my_column_2` = 35 
    AND `my_column_3` = 3 
    AND `id` != 136 

Cela vient de mettre à jour les lignes nécessaires sans les sélectionner d'abord.

+0

FACEPALM !!!!!!! – Armin

Questions connexes