PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : update .. SET textfield=textfield + ' neuertext' ?


flobee
07.02.2004, 11:13:25
hallo
kann man wie bei einfachen mathematischen aufgaben (SET counter=counter+1) auch strings in einem query erweitern?
$sql = "update tabelle SET textfeld = textfeld + ' noch mehr hinzugefügter text'"

gruß flobee

chris17
07.02.2004, 12:53:58
Hi flobee,

hab' CONCAT bisher nur in Verbindung mit SELECT benutzt...
Probier's einfach mal aus.
mysql_query("UPDATE tbl_tabelle SET textfeld=CONCAT(textfeld, ' bliblablub') WHERE id=1");
Gruss

Christian

Yzerman
07.02.2004, 14:55:38
Chris' Methode funktioniert so.

flobee
07.02.2004, 15:29:23
coool! :-) geht! danke!

c4
20.02.2004, 09:50:35
Moin,

wollte gerade meinen Datensätzen ein Leerzeichen anhängen und der tut nicht. :(
UPDATE classes SET class=CONCAT(class, ' ')
Hab es in phpMyAdmin machen wollen und der sagt mir nur, dass 0 Datensätze betroffen sind. Klasse! Warum?
Feldnamen, Groß- und Kleinschreibung und so stimmt alles. Datensätze sind natürlich auch vorhanden.


Danke,
Carsten

feuervogel
20.02.2004, 10:09:33
http://www.mysql.de/doc/de/String_functions.html#IDX1127

hat es vielleicht damit zu tun, dass ' ' keine zeichenkette ist?

c4
20.02.2004, 10:13:37
Original geschrieben von feuervogel
http://www.mysql.de/doc/de/String_functions.html#IDX1127

hat es vielleicht damit zu tun, dass ' ' keine zeichenkette ist? Was ist an einem Leerzeichen keine Zeichenkette?
Hast mich aber auf diese Idee gebracht:
UPDATE classes SET class=CONCAT(class, CHAR(32))
Klappt aber auch nicht...

c4
20.02.2004, 10:20:55
Hast Recht, der sieht das nicht als Leerzeichen an.

Neue Idee:
UPDATE classes SET class=CONCAT(class, ' #');
UPDATE classes SET class=LEFT(class, LENGTH(class)-1);

Heißt: Zwei Zeichen anhängen und das letzte praktisch entfernen. Ersteres klappt. Letzteres entfernt die letzten beiden Zeichen... WARUM??





Edit:
Ich scheine verloren zu haben: Values are not padded; instead, trailing spaces are removed when values are stored. (This space removal differs from the SQL-99 specification.)

chris17
20.02.2004, 10:46:11
Uups, hab' Dein Edit nicht gesehen
Und wenn Du zur "Not" den Typ "TEXT" nimmst?

Hi,

ist das Feld "class" vom Typ VARCHAR? -> http://www.mysql.de/doc/de/Bugs.html
Bei allen Zeichenketten-Spalten ausser bei BLOB- und TEXT-Spalten werden Leerzeichen am Ende automatisch entfernt, wenn sie abgerufen werden. Bei CHAR-Typen ist das okay und kann gemäß ANSI-SQL92 als ein Feature betrachtet werden. Der Bug besteht darin, dass in MySQL auch VARCHAR-Spalten auf dieselbe Art behandelt werden.

Esco
26.02.2004, 15:26:13
man könnte doch einfach auch ein #   einfügen ...