Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi mon instruction MySQL UPDATE renvoie-t-elle « Utilisation incorrecte de UPDATE et LIMIT » ?

Barbara Streisand
Libérer: 2024-10-25 09:53:02
original
187 Les gens l'ont consulté

Why Does My MySQL UPDATE Statement Throw

Comprendre l'erreur MySQL : utilisation incorrecte de UPDATE et LIMIT

Lors de l'utilisation de l'instruction UPDATE de MySQL pour modifier des données, vous pouvez rencontrer l'erreur « Utilisation incorrecte de UPDATE et LIMIT ". Cette erreur se produit lorsque vous tentez de combiner l'instruction UPDATE avec une clause ORDER BY ou LIMIT dans une opération de mise à jour de plusieurs tables.

Contexte :

Dans l'extrait de code fourni, l'instruction UPDATE tente de modifier la table des utilisateurs et sa table contact_info associée en fonction de conditions spécifiques. Cependant, il inclut également une clause LIMIT 1, qui n'est pas autorisée dans de tels scénarios.

La solution :

La documentation MySQL indique explicitement que pour les opérations UPDATE sur plusieurs tables, ORDER BY et LIMIT ne peut pas être utilisé. En effet, l'instruction UPDATE doit mettre à jour toutes les lignes correspondantes dans les tables jointes, et limiter la mise à jour à un nombre spécifique de lignes peut entraîner des résultats inattendus.

Pour résoudre cette erreur, supprimez simplement la clause LIMIT 1. à partir de votre instruction UPDATE. Le code mis à jour ressemblera à ceci :

$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) . "')";
$r = mysqli_query ($mysqli, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($mysqli));
Copier après la connexion

Ce code modifié effectuera l'opération de mise à jour comme prévu, sans aucune restriction sur le nombre de lignes correspondantes.

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!

source:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!