FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Hard- und Softwarefragen

MySQL - update namen = namen + noch einer

MySQL - update namen = namen + noch einer 2006-09-29 18:12
Popcorn
Man kann in MySQL doch auch Zahlen wunderschön per Update bearbeiten, ohne sich die Werte erst ganz ins Programm holen zu müsen. Irgendwie muss es doch auch mit Strings gehen? In der Doku habe ich weder ein Beispiel gefunden, noch die explizite Aussage dass es nicht geht. Hat wer Rat?

UPDATE alleNamenderWelt SET namen += 'noch einern dazu'

Re: MySQL - update namen = namen + noch einer 2006-09-29 18:31
Popcorn
Suchbegriffe zum Glück sind schon eine komische Sache… Als ich dann mal ohne String und nur mit "UPDATE SET" gegoogelt habe, kam ich nun endlich doch zum Ergebnis:

http://www.selfphp.de/forum/archive/index.php/t-6869.html
… mysql_query("UPDATE tbl_tabelle SET textfeld=CONCAT(textfeld, ' bliblablub') WHERE id=1"); …

Re: MySQL - update namen = namen + noch einer 2006-09-29 19:01
tekai


12.3. String Functions

Re: MySQL - update namen = namen + noch einer 2006-09-29 19:16
joda_der_weise
Jaja, das gute alte Problem dass Strings nicht "addiert" werden, sondern verknüpft/concateniert werden müssen^^

Re: MySQL - update namen = namen + noch einer 2006-09-29 22:03
Popcorn
Har har. Das war nur eine Visualisierung Joda. Hätte ich da schon gewußt dass es concat heißt, hätte ich ja nicht gefragt. [img]http://www.fb18.de/gfx/22.gif[/img]

Re: MySQL - update namen = namen + noch einer 2006-09-30 13:22
Anonymer User
12.3. String Functions
Wobei man sich bei der MySQL-Doku immer bewusst sein muss, dass dort sehr viele MySQL-Konstrukte benutzt werden, die nur eingeschränkt portabel sind.

CONCAT kann man bei MySQL z.B. beliebig viele Parameter geben, bei Oracle müssen es immer genau zwei sein. (Bei Oracle/PLSQL kann man den Operator || zur Stringverknüpfung nehmen, aber der ist bei MySQL wieder anders belegt. Eine portable Konkatenation von fünf Strings braucht deswegen vier CONCATs. Ürgs, es kann bequem sein, unportabel zu bleiben.)

LEIFer