# SQL String



## Manuela (11. Apr 2011)

Hallo,
ich habe ein kleines Problem 
ich habe eine Mysql Tabelle mit der ich meine Werte von y in der richtigen 
reihenfolge angezeigt bekomme 
jetzt habe ich in der Tabelle eine Spalte die Reihe heißt 
und ich muß ein update auf diese Reihe machen.
ich wollte das mit einem Trigger erledigen
aber wie?


```
Tabelle sieht so aus
ID  Y      werte       reihe
1    57     123,90     0
2    34       35,67    0
3   156     122,89    0

Tabelle  soll aber dann so aussehen
ID  Y      werte       reihe
1    57     123,90     2
2    34      35,67     1
3   156    122,89     3

SELECT * FROM tables_rows order by y;
Wird dieses hier abgebildet
ID  Y      werte       reihe
2    34       35,67     0
1    57     123,90      0
3   156    122,89      0
```
dann habe ich immer noch nicht meine Reihe geändert ??
Wie kann ich das machen ??

Gruß Manuela


----------



## tuttle64 (11. Apr 2011)

mit diesem Beispiel kannst Du eine neue Variable rownum erzeugen, welche mit 0 initialisiert wird und für jede row um eins erhöht wird.


```
select @rownum:=@rownum+1 ‘rank’, p.* from player p, (SELECT @rownum:=0) r order by score desc limit 10;
```

damit kannst Du dir ein update oder ein insert zusammenbasteln.


----------



## Marcinek (11. Apr 2011)

Hallo,

obwohl die o.g. Lösung nun syntaktisch korrekt ist, wieso will man das machen?

Je mehr Werte du "unkontrolliert" in die Tabelle reinhaust, desto mehr IDS wirst du haben. Vor allem wenn du einen Y Wert kleiner als 52 einfügst, dann müstest du wieder alle IDS ändern ;D

Das Sortieren solltest du dabei der Datenbank "order by" belassen.

Das Nummerieren sollte dein Programm machen, weil sich das abhängig von der Sortierung immer ändert.

Gruß,

Martin


----------

