MySQL 中的自增字段分組
在MySQL 中,可以建立基於分組列遞增的自增字段,從而允許用於分組資料排序。
實現
對於MyISAM和BDB表,可以使用以下表結構:
CREATE TABLE foo ( id INT AUTO_INCREMENT NOT NULL, group_field INT NOT NULL, name VARCHAR(128), PRIMARY KEY(group_field, id) );
說明
使用此結構,「id」列的自動增量值由以下公式決定:
MAX(auto_increment_column) 1 WHERE prefix=given-prefix
在這種情況下, 「prefix」代表「group_field」列的值,有效地將資料分組以進行自增計算。
範例
考慮下表:
id | name | group_field |
---|---|---|
1 | test | 1 |
2 | test2 | 1 |
1 | test3 | 2 |
2 | test4 | 2 |
1 | test5 | 3 |
2 | test6 | 3 |
插入新記錄時,「id」欄會在每組內自動遞增,從而導致:
id | name | group_field |
---|---|---|
3 | test | 1 |
4 | test2 | 1 |
3 | test3 | 2 |
4 | test4 | 2 |
3 | test5 | 3 |
4 | test6 | 3 |
此分組行為可以是對於組織和排序表中的資料很有用。
以上是如何建立自動增量字段,根據 MySQL 中的特定列對資料進行分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!