[sql] Zahlen auffüllen

Hallo,
ich sortiere eine Tabelle nach der Reihe „sort“, nun möchte ich die freien Stellen zwischen Zahlen auffüllen.

Tabelle:
id.|…sort…|.inhalt
1…|…1…|…blubb
2…|…4…|…bla
3…|…5…|…ble
4…|…8…|…blu

wie Ihr seht, gibts zwischen den zahlen 1& 4 sowie zwischen 5&8 freie Stellen.
bei vielen Einträgen komme ich so also schnell in den Bereich, wo sort in die 5stelligen Zahlen kommt.

Ich brauch nun also ne funktion, die mir diese Stellen sucht, und grössere Zahlen nach unten korrigiert.

Hat jemand ne Idee, wie ich sowas umsetzen könnte ?

Danke!

Hallo,

dazu brauchst Du einen Trigger. (Eigentlich mindestens 2). Für mehr musst Du schon die Datenbank verraten.

Was ich nicht verstehe: was willst Du damit erreichen? So wie Du das beschreibst, machst Du doch die Sortierung kaputt. Willst Du nicht eher die Bereiche zusammenführen? Dazu musst Du doch nur die Tabelle mit einem Cursor Selektieren und die Sortierung neu generieren.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]


Was ich nicht verstehe: was willst Du damit erreichen? So wie
Du das beschreibst, machst Du doch die Sortierung kaputt.

Nicht wenn die Reihenfolge erhalten wird, und nur die freien Stellen zwischen Zahlen verschwinden. -> "…ORDER by sort "

Willst Du nicht eher die Bereiche zusammenführen? Dazu musst
Du doch nur die Tabelle mit einem Cursor Selektieren und die
Sortierung neu generieren.

Das scheints zu treffen.
Was bedeutet das ??
Ich bin leider ein FeldundWiesen „Sqler“ :smiley:

aus

id.|…sort…|.inhalt
1…|…11…|…blubb
2…|…14…|…bla
3…|…15…|…ble
4…|…18…|…blu

soll

id.|…sort…|.inhalt
1…|…11…|…blubb
2…|…12…|…bla
3…|…13…|…ble
4…|…14…|…blu

werden

mfg
Jan

Lösung
Ich will hier mal eine Lösung anfügen, falls mal jemand übers Archiv hierher gelangt:

PHP-Quellcode:

<?php $sql = „SELECT id FROM Tabelle ORDER BY sort ASC“;
$result = mysql_query($sql);
$sort = 1;
while($row = mysql_fetch_array($result))
{
$sql = "UPDATE Tabelle SET sort = " . $sort++ . " WHERE id = " . $row[„id“];
mysql_query($sql);
}
?>

thx to out^haco