Feldgruppierung mit automatischer Inkrementierung in MySQL
In MySQL kann man Felder mit automatischer Inkrementierung erstellen, die basierend auf einer Gruppierungsspalte inkrementiert werden für die gruppierte Datenreihenfolge.
Implementierung
Für MyISAM- und BDB-Tabellen kann die folgende Tabellenstruktur verwendet werden:
CREATE TABLE foo ( id INT AUTO_INCREMENT NOT NULL, group_field INT NOT NULL, name VARCHAR(128), PRIMARY KEY(group_field, id) );
Erläuterung
Mit dieser Struktur wird der Auto-Inkrementwert für die Spalte „id“ durch die folgende Formel bestimmt:
MAX(auto_increment_column) 1 WHERE prefix=given-prefix
In diesem Fall stellt das „Präfix“ den Wert der Spalte „group_field“ dar und gruppiert effektiv die Daten für die Berechnung der automatischen Inkrementierung.
Beispiel
Beachten Sie die folgende Tabelle:
id | name | group_field |
---|---|---|
1 | test | 1 |
2 | test2 | 1 |
1 | test3 | 2 |
2 | test4 | 2 |
1 | test5 | 3 |
2 | test6 | 3 |
Beim Einfügen neuer Datensätze wird die Spalte „id“ innerhalb jeder Gruppe automatisch erhöht, was zu Folgendem führt:
id | name | group_field |
---|---|---|
3 | test | 1 |
4 | test2 | 1 |
3 | test3 | 2 |
4 | test4 | 2 |
3 | test5 | 3 |
4 | test6 | 3 |
Dieses Gruppierungsverhalten kann sein nützlich zum Organisieren und Ordnen von Daten in Tabellen.
Das obige ist der detaillierte Inhalt vonWie kann ich Felder mit automatischer Inkrementierung erstellen, die Daten basierend auf einer bestimmten Spalte in MySQL gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!