toby: MySQL: Ersetzen mit Callback

hi,
wie kann ich alle werte des feldes FELD1, die LIKE abc% sind so ersetzen, dass nur das abc durch def ersetzt wird, sodass aber der rest (%) erhalten bleibt?
Danke für tipps

  1. echo $begrüßung;

    wie kann ich alle werte des feldes FELD1, die LIKE abc% sind so ersetzen, dass nur das abc durch def ersetzt wird, sodass aber der rest (%) erhalten bleibt?

    MySQL kennt einige String-Funktionen. REPLACE() dürfte die sein, die du suchst.

    echo "$verabschiedung $name";

    1. spinn ich jetzt?!
      auf dem einen server lässt sich
      UPDATE test SET link = ( SELECT REPLACE( test.link, "abc", "def" ) )
      problemlos ausführen und es funktioniert!
      auf dem andren gehts nicht. dort meint mysql: error in line 1.
      was ist da los?

      1. echo $begrüßung;

        auf dem einen server lässt sich
        UPDATE test SET link = ( SELECT REPLACE( test.link, "abc", "def" ) )
        problemlos ausführen und es funktioniert!
        auf dem andren gehts nicht. dort meint mysql: error in line 1.
        was ist da los?

        Vermutlich ist die Version des einen größer oder gleich 4.1 und die des anderen kleiner.

        Mal abgesehen davon brauchst du die Subquery nicht:

        UPDATE test SET link=REPLACE(link, "abc", "def");

        echo "$verabschiedung $name";

        1. jo, was mach ich nun, wo die version älter ist?

          1. hi,

            jo, was mach ich nun, wo die version älter ist?

            Da liest du jetzt dedlfix' Antwort noch mal _aufmerksam_ - und benutzt dann die Alternative, die er dir zu deiner in diesem Falle vollkommen überflüssigen Subquery vorschlug.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. yo,

              Da liest du jetzt dedlfix' Antwort noch mal _aufmerksam_ - und benutzt dann die Alternative, die er dir zu deiner in diesem Falle vollkommen überflüssigen Subquery vorschlug.

              wobei die lösung von dedlfix eventuell nicht ganz sauber ist, weil er nur die drei buchstaben am anfang ersetzen will. replace würde aber auch zeichen in der "mitte" oder am "ende" ersetzen, wenn es die gleiche zeichenfolge besitzt. eine andere zeichenfunktion wäer hier dann angebrachter.

              Ilja