Bastian Kurz: Textteil in MySQL-Textfeld ersetzen

Hallo!

Ich habe eine MySQL-Tabelle. Da ist neben vielen Feldern auch ein Textfeld drin, wo ich jetzt das Wort "photo" durch "foto" ersetzen muß. Das Problem ist dabei, daß dieses Wort immer in einem längeren Text vorkommt.
update tabelle set text = 'foto' where text = '%photo%'
funktioniert ja leider nicht, weil da ja nicht nur dieses eine Wort drin steht. Kann man das irgendwie mit SQL lösen? Oder müßte ich jedes Wort manuell ersetzen.

Basti

  1. Hello,

    Ich habe eine MySQL-Tabelle. Da ist neben vielen Feldern auch ein Textfeld drin, wo ich jetzt das Wort "photo" durch "foto" ersetzen muß. Das Problem ist dabei, daß dieses Wort immer in einem längeren Text vorkommt.
    update tabelle set text = 'foto' where text = '%photo%'
    funktioniert ja leider nicht, weil da ja nicht nur dieses eine Wort drin steht. Kann man das irgendwie mit SQL lösen? Oder müßte ich jedes Wort manuell ersetzen.

    Man kann.

    Entscheiden musst Du dabei aber, ob Groß-/Kleinschreibung wesentlich sein könnte.

    update tabelle set text = insert(text,instr(text,'photo'),length('foto'),'foto') where text like '%photo%';

    Probier das mal aus.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hello,

      oder:

      update tabelle set text = replace(text,'photo','foto');

      Die Where-Klausel kann man hier wohl weglassen, denke ich.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau