Hallo zusammen,
vielleicht kann mit hier jmd helfen, wäre dringend.
Also folgendes Problem:
Habe eine Tabelle „Meldung“
Hier gibt es eine Spalte „Vorname“
In dieser Spalte kann folgendes stehen:
Max
Dr. Max
Herr Dr. Max
Ich möchte jetzt überall wo in dieser Spalte das „Dr.“ vorkommt dieses löschen, wobei aber das „Max“ oder „Herr Max“ dann erhalten bleiben soll.
DELETE FROM meldungen
WHERE vorname LIKE '% Dr. %';
Wäre mal die Spontan-Lösung. Problematisch natürlich bei mehreren Titeln oder auch Schreibvarianten wie: 'Hr.Dr. Blubb', 'Herr DR Blubb'... und so weiter.
Gruß
Andreas
Weil der Tabellenname falsch ist. @Andreas, man kann Beiträge auch löschen, leider nur, solange noch niemand geantwortet hat - nun zu spät. Deine erste Version war doch etwas …destruktiv…
Warum nicht so?
UPDATE meldung
SET vorname = REPLACE(vorname,'Dr.','');
@NadineU60311: Bitte immer die genaue Fehlermeldungen mitposten, sonst ist es ein Ratespiel.
Version war doch etwas …destruktiv…
zugegebener Maßen - ja war sie; hatte beim Anfangspost statt „dieses löschen“ - „diese Löschen“ gelesen; wollte aber dennoch die Möglichkeit stehen lassen, die Datensätze komplett zu löschen - rein zu Informationszwecken.
Warum nicht so?
UPDATE meldung
SET vorname = REPLACE(vorname,‚Dr.‘,’’)
und vorher zum Test ein
select REPLACE(vorname,‚Dr.‘,’’) from Meldung;
Weil aus "Herr Dr. Max" dann "Herr Max" statt "Herr Max" wird (hoffe man sieht den Unterschied der 2 Leerzeichen).
trim() entfernt nur Leerzeichen von Anfang und vom Ende des Gesamtstrings, das reicht nicht, und die where-Klausel ist falsch (eigentlich auch überflüssig), weil du dich nicht auf die Leerzeichen vor dem ‚Dr.‘ verlassen kannst.
Also folgenden Vorschlag:
UPDATE meldung
SET vorname = TRIM(REPLACE(REPLACE(vorname,'Dr.',''),' ',' '));
Weil aus „Herr Dr. Max“ dann „Herr Max“ statt „Herr Max“ wird
(hoffe man sieht den Unterschied der 2 Leerzeichen).
Was mit einer weiteren Verwendung von
UPDATE meldung
SET vorname = REPLACE(REPLACE(vorname,‚Dr.‘,’’),’ ‚,‘ ‚)
bzw.
select REPLACE(REPLACE(vorname,‚Dr.‘,‘’),’ ‚,‘ ') from Meldung;
ändern könnte (bei ersten Mal 2 Leerzeichen, bei zweiten Mal nur 1 Leerzeichen).
Die erfüllt schon einen Sinn, da sie das Potential hat erheblich Performance bringen, je nach Geasmtvolumen und relativer Häufigkeit der Datensätze mit "Dr. "