2009-09-14 9 views
0

je voudrais faire quelque chose comme lecolonne Mise à jour MySQL avec déclaration

suivant
UPDATE table SET column = other_column IN(complex_statement) 

Ma question est de savoir si cette Wold provoque la déclaration complexe à évaluer pour chaque ligne ou non, ce qui ne serait évidemment pas très bon pour performance.

L'alternative serait faire

UPDATE table SET column = 0; 
UPDATE table SET column = 1 WHERE other_column IN(complex_statement) 

Répondre

4

Cela dépend si la sous-requête « autre déclaration complexe » est une sous-requête ou non .. « Corrélées » A « Corrélées » est celui où les résultats dépendent de la valeur de la ligne dans la requête "externe". Par conséquent, si l'instruction complex a une référence à une colonne de votre table de requête externe, alors il s'agit d'une sous-requête "Correlated" et la réponse est oui, elle sera évaluée pour chaque ligne. Sinon, n °

+0

merci, dans mon cas ce n'est pas une sous-requête corrélée donc je devrais être bien – MarcS

Questions connexes