2017-06-01 7 views
0

Ich habe eine MySQL DB (5.7.18) mit Artikel Tabelle. Jeder Artikel hat eine Zusammenfassung als HTML-String in abstract Spalte. Durch einen Fehler im HTML-Editor, viele von HTML-Tags sind mit lästigen Stil verunreinigt, wie folgt aus: dieseMySQL Semikolon in Update-Anweisung verursacht Syntaxfehler

<h1 style="color: rgb(0, 0, 0);">Wonderful Abstract</h1> 

Um zu beheben ich die folgende Abfrage versuche:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0);"','') 

Leider ein Syntaxfehler wird angezeigt:

# 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung für die richtige Syntax zu Ihrer MySQL-Server-Version entspricht in der Nähe von '' style = "color: rgb (0, 0, 0))‘ zu verwenden, in Zeile 1

Wenn das Semikolon es entfernt wird gut funktioniert:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)"',''); 

Aber es muss auch in der Zeichenfolge ersetzt werden ...

ich einen Verweis here gefunden sagen, es zu entkommen:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)\;"','') 

Aber die Fehlermeldung wird weiterhin angezeigt.

Eine weitere Option in der gleichen Herkunft beschrieben ist ein Semikolon an das Ende der Anweisung hinzuzufügen:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0);"',''); 

und die Kombination der beiden letztgenannten:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)\;"',''); 

Die Fehlermeldung gibt es nach wie vor .

+0

Ich kann nicht scheinen, [zu reproduzieren] (http://rextester.com/OOQ84230) dieses lokal Problem, zumindest die Textersetzung von selbst funktioniert für mich. –

+0

Danke @TimBiegeleisen. Es ist also wahrscheinlich etwas in meiner Umgebung. – Dorad

+0

Kann nicht reproduziert werden. Semikolon in einer Zeichenfolge sollte kein Problem verursachen, schließen Sie die Zeichenfolge immer noch in Anführungszeichen in Anführungszeichen ein. Versuchen Sie, Ihre Aussage zu beenden mit: $$ Delimiter;. (Nicht sicher, ob das hilft) – Karthik

Antwort

1

Es gefunden.

Es war ein Feld in phpMyAdmin, das standardmäßig auf Semikolon (;) eingestellt ist.

Ich habe es in ein nicht verwendetes Zeichen geändert und die Abfrage wurde normal ausgeführt.

Delimiter

+0

phpMyAdmin? Man ... da gibt es einige bessere Möglichkeiten da draußen: p –

+0

Es gibt keine Berücksichtigung für Geschmack ... (es reimt sich auf Hebräisch: עַעַ טַעַם ְעְַעְַעַ ֵֵֵחַ אֵאֵן ְְְְְִִַכֵּחַ). – Dorad

+0

Sicher, aber in diesem Fall hat Ihnen phpMyAdmin die gültige SQL-Syntax genommen –

0

ich dieses Verhalten nicht replizieren kann ...

http://rextester.com/BZAPY91725

Vielleicht sind Sie mit einem SPROC?

+0

Hallo. Danke für deine Zeit. Es ist kein SPROC. es ist eine direkte SQL-Abfrage in phpMyAdmin. – Dorad