所以这更多的是关于如何做到这一点的查询,我不熟悉MySQL / PHP编码,而不仅仅是基础知识,所以我只是想知道如何设置自动递增int如果两个姓氏相同则会计算它们。 我在网上搜索时无法找到任何内容,但一个例子是:
在数据库中我们有5个用户
1. james smith 1
2. terry smith 2
3. john smith 3
4. jerry fields 1
5. tom straus 1
当这些用户注册时,我需要创建一个int,john smith是第三个拥有相同姓氏smith的人,而jerry fields是第一个拥有姓氏字段等的人。怎么可能这样做?< / p>
我制作的表单是使用jquery / php ajax方法注册用户但是 我想添加类似于此的内容,以便将该数字与其名称相结合,以生成特定的用户ID。
答案 0 :(得分:2)
正如Using AUTO_INCREMENT
所述:
对于
MyISAM
和BDB
表,您可以在多列索引的辅助列上指定AUTO_INCREMENT
。在这种情况下,AUTO_INCREMENT
列的生成值计算为MAX(auto_increment_column) + 1 WHERE prefix=given-prefix
。当您想要将数据放入有序组时,这非常有用。
因此,您可以这样做:
CREATE TABLE my_table (
firstname VARCHAR(31) NOT NULL,
lastname VARCHAR(31) NOT NULL,
counter BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (lastname, counter)
) Engine=MyISAM;
INSERT INTO my_table
(firstname, lastname)
VALUES
('james', 'smith' ),
('terry', 'smith' ),
('john' , 'smith' ),
('jerry', 'fields'),
('tom' , 'straus')
;
在sqlfiddle上查看。