Ersetzen (REPLACE) in einer Tafel unter Bezug auf eine andere?

Ersetzen (REPLACE) in einer Tafel unter Bezug auf eine andere?

am 09.06.2007 08:13:27 von Gunnar Lindenblatt

Hallo!

Ich möchte in einer Spalte die deutschen Umlaute (und andere
Sonderzeichen) ersetzen. Das geht mit

UPDATE mytable SET mycolumn =3D REPLACE(mycolumn, 'ä', 'ae');

So weit, so gut. Jetzt möchte ich aber nicht für jeden Umlaut so einen
Befehl absenden, sondern eine Tabelle anlegen:

TABLE replacements
searchfor -- replaceby
ä -- ae
ö -- oe
ü -- ue
...

und dann soll ein Befehl anhand dieser Tabelle alle Ersetzungen
vornehmen:

UPDATE mytable
SET mytable.mycolumn =3D REPLACE(mytable.mycolumn,
replacements.searchfor, replacements.replaceby);

Dies funktioniert aber nicht wie gewünscht, da nur Ersetzungen mit der
jeweilig gleichen Zeilenzahl durchgeführt werden, statt die Tabelle
`replacements` vollständig zu durchlaufen. Was mache ich falsch?


Grüße

Gunnar

--
Gunnar Lindenblatt
Hangzhou, CHINE
sedamo* aw-al-je-jy
* http://sedamo.info/

Re: Ersetzen (REPLACE) in einer Tafel unter Bezug auf eine andere?

am 09.06.2007 12:47:00 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)