Mysql自动增加类似数据的整数


Mysql Auto-incrementing int of similar data

所以这更多的是一个关于如何去做这个的查询,我是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:

对于MyISAMBDB表,可以在多列索引的副列上指定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')
;