String Funktion replace unter postgres?

Hallo Leute,

ich habe ein mysql script, das wie folgt aussieht:

UPDATE svn_assigned SET
	 user_or_group = REPLACE(REPLACE(user_or_group, "\\'", "'"), '\\"', '"');

Dieses soll alle vorkommen von ’ und " mit jeweils ’ und " ersetzen. Also sollen alle Backslashes, die vor einem einfachen Hochkomma oder doppeltem stehen entfernt werden. Das oben genannte Statement funktioniert unter mySQL wunderbar, allerdings soll dies bei mir unter PostgreSQL funktionieren.

Ich habe bereits herausgefunden, dass die einfachen Hochkommas in PostgreSQL in etwa die Funktion wie die doppelten Hochkommas in mySQL haben.
Ich habe dann das Statement so geändert:

UPDATE svn_assigned SET
	 user_or_group = REPLACE(REPLACE(user_or_group, '\\\'', '''), '\\"', '"');

Ich habe versucht die Hockommas zu escapen, dies hat allerdings nicht funtioniert, kann mir jemand sagen, wie ich das am besten unter PostgreSQL umsetze?

MFG Havoc

PS: Danke für eure Hilfe schon einmal im vorraus

Hallo Havoc,

[quote=“Havoc_1986”]REPLACE(REPLACE(user_or_group, ‘\’’, ‘’’), ‘\"’, ‘"’)]

verwende mal folgenden Befehl:

REPLACE(REPLACE (user_or_group, ‘\’’’, ‘’’’), ‘\"’, ‘"’);



Zur Überprüfung kannst Du die nachfoldende Befehle im Query-Tool eingeben:

select ‘\’’’::TEXT AS SOURCE, ‘’’’::TEXT AS DESTINATION;

select ‘\"’::TEXT AS SOURCE, ‘"’::TEXT AS DESTINATION;



Wenn in Deinem Text das Zeichen “” nicht noch woanders vorkommt, kannst Du auch die die Funktion

translate (user_or_group, ‘\’, ‘’)

verwenden. Sie ist schneller!



mfg

fristo

Vielen Dank, aber ich habe bereits die Lösung gefunden, das Resultat sieht so aus:

UPDATE flyspray_assigned SET
	 user_or_group = REPLACE(REPLACE(user_or_group, '\\\'', '\''), '\\"', '"');

Trotzdem vielen Dank, für deine schnelle Antwort

MFG Havoc