Wir haben eine Datenbank mit einer Reihe von Datensätzen mit einigen fehlerhaften Daten in einer Spalte, in der ein eingebetteter Editor einige Dinge maskiert hat, die nicht hätten maskiert werden sollen, und generierte Links beschädigt.
Ich möchte eine Abfrage ausführen, um die fehlerhaften Zeichen in allen Datensätzen zu ersetzen, kann aber nicht herausfinden, wie das geht. Ich habe die replace()
Funktion in MySQL gefunden, aber wie kann ich sie in einer Abfrage verwenden?
Was wäre beispielsweise die richtige Syntax, wenn ich die Zeichenfolge in allen Datensätzen in der Spalte <
durch eine tatsächliche Klammer ( <
) ersetzen möchte, die kleiner als der Winkel ist ? Kann dies in einer einzigen Abfrage durchgeführt werden (dh alle auf einen Schlag auswählen und ersetzen), oder muss ich mehrere Abfragen durchführen? Wie kann ich den Wert eines Feldes in mehr als einem Datensatz ersetzen, auch wenn es sich um mehrere Abfragen handelt ?<
articleItem
replace()
Antworten:
Auf einer sehr allgemeinen Ebene
In Ihrem Fall sagen Sie, dass diese entkommen sind, aber da Sie nicht angeben, wie sie entkommen sind, nehmen wir an, dass sie entkommen sind
GREATERTHAN
Da Ihre Abfrage tatsächlich innerhalb der Zeichenfolge funktioniert,
WHERE
ist es unwahrscheinlich , dass Ihre Klausel, die den Mustervergleich durchführt, die Leistung verbessert - sie wird tatsächlich mehr Arbeit für den Server generieren. Sofern Sie kein anderes WHERE-Klauselmitglied haben, mit dem diese Abfrage besser ausgeführt werden kann, können Sie einfach ein Update wie folgt durchführen:Sie können auch mehrere
REPLACE
Anrufe verschachtelnSie können dies auch tun, wenn Sie die Daten auswählen (im Gegensatz zum Speichern).
Also statt:
SELECT MyURLString From MyTable
Du könntest es tun
SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable
quelle
quelle
<
s wurde behoben . Sie müssen die Codierung von & verwenden, wie folgt:&
:)Überprüfen Sie dies
ZB mit Beispielzeichenfolge:
EG mit Spalten- / Feldname:
quelle
Sie können eine gespeicherte Prozedur wie folgt schreiben:
Auf diese Weise haben Sie die Kontrolle über die Tabelle modularisiert.
Sie können die gespeicherte Prozedur auch verallgemeinern, indem Sie sie mit der Tabelle parametrisieren, um den Eingabeparameter zu bereinigen
quelle
Das wird dir helfen.
Ergebnis:
quelle