J'ai une base de données MySQL (5.7.18) avec une table d'articles. Chaque article contient un résumé en tant que chaîne html dans la colonne abstract
. En raison d'un bogue dans l'éditeur HTML, un grand nombre de balises HTML sont pollués avec un style ennuyeux, comme ceci:Le point-virgule MySQL dans l'instruction de mise à jour provoque une erreur de syntaxe.
<h1 style="color: rgb(0, 0, 0);">Wonderful Abstract</h1>
Pour résoudre ce problème, je suis en train de la requête suivante:
UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0);"','')
Malheureusement, une erreur de syntaxe est affichée:
# 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de « » style = "color: rgb (0, 0, 0)) » à la ligne 1
Si le point-virgule est enlevé fonctionne très bien:
UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)"','');
Mais il doit être remplacé dans la chaîne trop ...
Je trouve une référence here disant pour y échapper:
UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)\;"','')
Mais le message d'erreur est toujours affiché.
Une autre option décrite dans la même origine est d'ajouter un point-virgule à la fin de l'instruction:
UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0);"','');
Et la combinaison de ces deux:
UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)\;"','');
Le message d'erreur est toujours là .
Je ne peux pas sembler [reproduire] (http://rextester.com/OOQ84230) cette question au niveau local, au moins le texte de remplacement par lui-même fonctionne pour moi. –
Merci @TimBiegeleisen. C'est donc probablement quelque chose de spécifique à mon environnement. – Dorad
Impossible de reproduire. Le point-virgule d'une chaîne ne doit pas causer de problème, mais entourez toujours la chaîne de guillemets simples dans l'instruction d'insertion. Essayez de terminer votre déclaration avec; $$ Délimiteur. (Je ne sais pas si cela aide) – Karthik