所以这更多的是一个关于如何去做这个的查询,我是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是第一个具有姓氏字段的人,等等。怎么才能做到呢?
我所做的表单是一个注册用户使用jquery/php ajax方法,但我想添加一些类似的东西,这样它就可以将这个数字与他们的名字结合起来,形成一个特定的用户ID。
使用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')
;