Maison > base de données > tutoriel mysql > Pourquoi ne puis-je pas utiliser LIMIT dans une requête UPDATE avec plusieurs tables dans MySQL ?

Pourquoi ne puis-je pas utiliser LIMIT dans une requête UPDATE avec plusieurs tables dans MySQL ?

Linda Hamilton
Libérer: 2024-10-26 02:50:02
original
798 Les gens l'ont consulté

Why Can't I Use LIMIT in an UPDATE Query with Multiple Tables in MySQL?

Utilisation incorrecte de UPDATE et LIMIT dans les requêtes MySQL

Question :

Comment puis-je résoudre l'erreur « Utilisation incorrecte de UPDATE et LIMIT » lors de l'exécution d'une requête MySQL ?

Problème :

Le code MySQL suivant génère une erreur en raison d'une utilisation incorrecte de UPDATE et LIMIT :

$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";
Copier après la connexion

Réponse :

La documentation MySQL pour UPDATE indique :

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

Par conséquent, lors de l'utilisation de la syntaxe à tables multiples pour UPDATE, il n'est pas possible d'utiliser LIMIT. clause. Cette restriction est en place pour éviter les mises à jour incohérentes sur plusieurs tables.

Correction :

Pour résoudre l'erreur, supprimez la clause LIMIT de la requête :

$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) . "')";
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal