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中文网其他相关文章!