MySQL Spalten (Datensätze) nummerieren als Update und Select

Gepostet am November 21, 2012

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
..
*/

Tags:

Leave a Reply

 

Posts of Current Category



Facebook: