PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Query für ":'(" => ":("


spacer
11.08.2002, 18:50
moin.

ich fange gerade an ein bischen mySQL zu lernen und hab mich mal an ein paar einfachen befehlen geübt, zum beispiel per mySQL Query inhalte zu verändern:

ich hab eine testtabelle erstellt in der es verschieden smilies gab nämlich :) + :( + :D + :'(

jetzt wollte ich per Query überall wo folgender war: :'( diesen einsetzen lassen: :(

Query

UPDATE testtab SET pagetext = REPLACE(pagetext, ':'(', ':(') WHERE pagetext LIKE '%:'(%'


das funzt aber anscheinend wegen dem " ' " nicht, wie würde man diesen "bug" umgeheb?

Mystics
11.08.2002, 18:53
Ohne es getestet zu haben, versuch's mal damit:

UPDATE testtab SET pagetext = REPLACE(pagetext, ':\'(', ':(') WHERE pagetext LIKE '%:\'(%'

spacer
11.08.2002, 21:26
man man man, woher weist du das alles ???

was macht das \ da denn genau?

btw. hat natürlich geklappt

Mystics
11.08.2002, 21:32
\ ist ein Escape Zeichen, das verhindert, dass gewissen Zeichen als Befehl interpretiert werden.

Das normale Hochkamma konntest du in dem Query nicht verwenden, weil du den zu suchenden String auch mit einem Hochkomma eingeleitet hast. Im Endeffekt wird \\' wieder zu ' umgewandelt, aber z.B. MySQL weiß ja nicht, ob das Hochkomma nun zum eigentlichen String gehört, oder diesen String abschließt.

Hm, ich habe das Gefühl, das Geschreibsel kapiert nun kein Mensch ;)