Maison  >  Article  >  base de données  >  Pourquoi MySQL génère-t-il une erreur « Utilisation incorrecte de UPDATE et LIMIT » lors de la mise à jour de plusieurs tables ?

Pourquoi MySQL génère-t-il une erreur « Utilisation incorrecte de UPDATE et LIMIT » lors de la mise à jour de plusieurs tables ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 06:49:29934parcourir

Why Does MySQL Throw an

Utilisation incorrecte de UPDATE et LIMIT avec plusieurs tables dans MySQL

Lors de la mise à jour de plusieurs tables à l'aide d'une opération JOIN dans MySQL, certaines restrictions s'appliquent. L'une de ces restrictions est l'impossibilité d'utiliser la clause LIMIT, comme l'indique le message d'erreur « Utilisation incorrecte de UPDATE et LIMIT ».

Comment résoudre le problème :

Selon la documentation MySQL pour UPDATE, "Pour la syntaxe à tables multiples, UPDATE met à jour les lignes de chaque table nommées dans table_references qui satisfont aux conditions. Dans ce cas, ORDER BY et LIMIT ne peuvent pas être utilisés."

Par conséquent, dans l'extrait de code que vous avez fourni :

<code class="php">$q = "UPDATE users INNER JOIN contact_info ON contact_info.user_id = users.user_id SET active.users = NULL WHERE (email.contact_info = '" . mysqli_real_escape_string($mysqli, $x) . "' AND active.users = '" . mysqli_real_escape_string($mysqli, $y) . "') LIMIT 1";</code>

Pour corriger le problème, vous devez supprimer la clause LIMIT 1. Cela entraînera l'application de mises à jour à toutes les lignes correspondantes dans les tables "users" et "contact_info", conformément aux conditions spécifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn