Jana: MySQL 5.1 -automatisch nummerieren pro Typ

Beitrag lesen

Tach!

auch Tachchen :)

wie kann ich in MySQL 5.1 anhand festgelegter Regeln, für diese Regel automatisch die Datensätze nummerieren lassen?

Wie lauten diese Regeln genau und was sind die Rahmenbedingungen? Wann soll nummeriert werden? Einmalig den vorhandenen Datenbestand, bei jedem Abfragen, anders?

Bei dem View soll für jeden Typ von 1 an fortlaufend durchnummeriert werden.

Ist die Anzahl der Typen auf 2 oder eine andere kleine Anzahl begrenzt oder können da beliebig viele Werte auftreten?

Datensätze im MySQL-Query nummerieren lassen und nicht durch PHP
Das bringt mich nicht richtig weiter, da damit der Counter über alle Datensätze geht.

Das bringt dich weiter, wenn du pro Typ einen eigenen Zähler nimmst. Fallunterscheidungen sind mit IF() und CASE realisierbar. Allerdings muss die Anzahl der Typen dafür bekannt sein, da für jeden eine eigene Fallunterscheidung und eine eigene Zählvariable verwendet werden muss.

Wenn es mehr und nicht vorhersagbare Typen sind, müsstest du tiefer in die Trickkiste greifen und eine Stored Function erstellen, die eine eigene temporäre Tabelle verwendet, in der für jeden Typ ein Zähler verwaltet wird.

typ ist beliebig erweiterbar. Die Zählung soll sich später auf einer Datumsspalte beziehen (ORDER BY _date_from). Wenn ein Datensatz gelöscht wird, soll das automatisch berücksichtigt werden. Wenn ich so recht überlege, kann eigentlich nur am Ende (Datum) gelöscht.

Wie müsste das mit der Stored Function aussehen? Würde das auch mit einer Stored Procedure gehen, der ich z.B. den Typ übergebe und die mir dann die für mich relevanten Spalten zurückgibt?

Ich möchte in einen anderen Select darauf entweder per Subselect oder Join zugreifen und dann nur die Datendätze abrufen, wo der Counter z.B. den Wert 2 hat.

Jana