Mysql自动递增类似数据的int

时间:2013-01-14 13:17:56

标签: php mysql int auto-increment

所以这更多的是关于如何做到这一点的查询,我不熟悉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。

1 个答案:

答案 0 :(得分:2)

正如Using 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')
;

sqlfiddle上查看。