Jump to content

SQL Replace statement


Direkt zur Lösung Gelöst von testperson,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

ich möchte in einer mySQL Datenbank in einer Tabelle etwas ersetzen.

Mein bisheriges Statement zum ersetzen sieht so aus. Damit ersetze ist in der Tabelle "booking_information" 1 durch 2.
 

update EE2023_dpcalendar_events set booking_information = REPLACE(booking_information, "1","2")

Das klappt auch.

Nun habe ich aber in der Tabelle booking_information auch HTML-Code stehen.

z.B. das hier:
 

<div class="buchungsinfo_kopf"><br />


Hier muss das <br /> weg.

Ich kann aber mit meinem Statement oben das ganze nicht machen, weil bei der Klasse Anführungszeichen sind.
Ich kann also NICHT schreiben:

 

update EE2023_dpcalendar_events set booking_information = REPLACE(booking_information, "<div class="buchungsinfo_kopf"><br />","<div class="buchungsinfo_kopf">")

 

Wie würde denn so ein Statement lauten wie in meinem Fall?

Danke für Euere Hilfe!

Link zu diesem Kommentar
  • Beste Lösung

Hi,

 

du musst in diesem Fall die Anführungszeichen / Sonderzeichen escapen: MySQL :: MySQL 8.0 Reference Manual :: 9.1.1 String Literals

Zitat

Table 9.1 Special Character Escape Sequences

Escape Sequence Character Represented by Sequence
\0 An ASCII NUL (X'00') character
\' A single quote (') character
\" A double quote (") character
\b A backspace character
\n A newline (linefeed) character
\r A carriage return character
\t A tab character
\Z ASCII 26 (Control+Z); see note following the table
\\ A backslash (\) character
\% A % character; see note following the table
\_ A _ character; see note following the table

 

Gruß

Jan

Link zu diesem Kommentar

Also wäre dieses Statement dann so korrekt?

 

update EE2023_dpcalendar_events set booking_information = REPLACE(booking_information, "<div class=\"buchungsinfo_kopf\"><br />","<div class=\"buchungsinfo_kopf\">")

 

Ich habe Bedenken, dass er mir beim ersetzen das DURCH genau so in die DB schreibt und dann zeichengenau <div class=\"buchungsinfo_kopf\"> in der DB steht und nicht mehr <div class="buchungsinfo_kopf">.

Link zu diesem Kommentar

Moin,

 

wenn du sowas häufiger machen musst (danach hört es sich zumindest an), dann solltest du anhand deiner Datenbank prüfen, wie die Escape-Syntax ist. Sehr wahrscheinlich ist sie so, wie Jan zitiert hat. Wenn du das weißt, musst du nicht mehr rätseln und auch nicht auf Exporte ausweichen.

 

Sobald man Daten einer Produktionsdatenbank manipuliert, ist ein vorheriger Test ohnehin unumgänglich, also solltest du schon im Eigeninteresse für eine Testumgebung sorgen. Eine VM kann dabei hilfreich sein, es wird aber sicher auch ohne gehen.

 

Gruß, Nils

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...