heinetz: HIlfe bei SQL-Statement

Beitrag lesen

hi,

ich hab etwas gefunden, was schon sehr gut geht !

  
SET @c := 0;  
UPDATE  `tabelle` SET  `position` = ( SELECT @c := @c + 1 )  
ORDER BY id ASC;  

... schreibt den fortlaufenden Zähler in das Feld 'position'.

Meine Tabelle ist dann aber doch komplexer ;)

+------+-----------------------+-----------+
|   id |      text |    gruppe |  position |
+======+===========+===========+===========+
|  1   | irgendwas |         1 |         0 |
+------+-----------------------+-----------+
|  3   | irgendwas |         2 |         0 |
+------+-----------------------+-----------+
|  5   | irgendwas |         2 |         0 |
+------+-----------------------+-----------+
|  6   | irgendwas |         3 |         0 |
+------+-----------------------+-----------+
| 16   | irgendwas |         1 |         0 |
+------+-----------------------+-----------+

  
SET @c := 0;  
UPDATE  `tabelle` SET  `position` = ( SELECT @c := @c + 1 )  
WHERE `gruppe` = 1  
ORDER BY id ASC;  

... schreibt den fortlaufenden Zähler in das Feld 'position'
für alle, die dem Kriterium gruppe = 1 entsprechen.

Um innerhalb aller Gruppen zu sortieren, müsste ich das
Ganze in diesem Fall für jede Gruppe absetzen. Da wäre
ich wieder bei einer Schleife ... die ich natürlich gerne
vermeiden würde ;)

Sollte das gehen ? Hat jemand einen Tipp ?

danke und

beste gruesse,
heinetz