Datenbankeinträge ordnen

dezz

Mitglied
Hallo!
Habe in meiner DB 2 wichtige Spalten, ID und count:
PHP:
ID | count | .......
36     1
35     3
36     6
35     7
35     9
.....

Nun folgendes Problem, ich will dass nach einer bestimmten Eingabe die Werte von "count" sich sortieren. Z.Bsp ID 35 hat jetzt 3,7 und 9 bei count, sollte nach der Eingabe zu 1,2 und 3 werden.
Gibt es dafür vielleicht einen MySQL-Befehl? Oder wie könnte man sowas leicht realisieren?
 
Also ist count kein Anzahl-Feld sonder ein Sortierfeld?

Mach doch mal ein Beispiel wie die Tabelle danach aussehen soll. Anhand deiner Beschreibung raff ich das nicht.
 
Ungetestet und für alle ids. Ansonsten halt die ID in den WHERE schmeissen
SQL:
UPDATE 
    myTable, 
    (
        SELECT
            @newCount := IF(@lastId = id, @newCount + 1, 1) AS newCount,
            `count` AS oldCount, 
            @lastId := id AS id;
        FROM
            (SELECT @newCount := 0, @lastId := 0) AS vars,
            (SELECT * FROM myTable ORDER BY id, `count`) AS myData
        ) AS newCounts
SET 
    myTable.count = newCounts.newCount
WHERE
    myTable.id = newCounts.id
    AND myTable.count = newCounts.oldCount
 
Zuletzt bearbeitet von einem Moderator:
yaslaw, Danke für die Mühe. Hatte heute Zeit es auszuprobieren.. bekomme leider einen Fehler
PHP:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; FROM (SELECT @newCount := 0, @lastId := 0)' at line 7
 
@Hirnhamster
naja, sagen wir ein User hat eine bestimmte ID, trägt dann etwas ein und jeder Eintrag wird gezählt.
Wird nun ein Eintrag gelöscht, sieht es dann so aus:

ID | count | .......
36 1
35 1
36 2
35 3
(ID 35, count 2 hier gelöscht)
damit es nicht so bleibt, wollte ich die Einträge neuzählen.

@yaslaw
PHP:
WHERE
table.tID = '$id' AND...
sieht grade so aus:

ID | count | .......
36 1
35 1
36 1
35 1
 
Zurück