Folgend möchte ich zeigen wie man Datensätze inklusive einer Nummerierung auslesen kann.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SET @n = 0; SELECT @n := @n + 1 AS `counter`, `spalte` FROM `tabelle` /* Ausgabe counter | feld 1 | feldinhalt 2 | feldinhalt 3 | feldinhalt 4 | feldinhalt ... |
Nun kommen wir zum Update von Spalten mit einer fortlaufenden Zahl:
CONCAT verbindet Strings.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | SET @n = 0; UPDATE `tabele` SET `name` = CONCAT('CE', @n := @n + 1) /* vorher Bsp: name hans fred achim micha .. */ /* nachher Bsp: name test1 test2 test3 test4 .. */ |
Indem man ‚test‘ durch den Spaltennamen ersetzt, könnt man auch an die Namen die Werte anhängen.
Nun das gleiche Update wie oben nur mit 0 als Füllzeichen:
LPAD füllt Strings bis zu einer vorgegebenen Länge auf:
1 2 3 4 5 | // Beispiel: mysql> SELECT LPAD('hi',4,'??'); -> '??hi' mysql> SELECT LPAD('hi',1,'??'); -> 'h' |
In unserem Beispiel sieht das wie folgt aus:
1 2 3 4 5 6 7 8 9 10 11 | SET @n = 0; UPDATE `tabele` SET `name` = CONCAT('test', LPAD(@n := @n + 1,5,'0')) /* nachher Bsp: name test00001 test00002 test00003 test00004 .. */ |