0

如何在注册时为用户生成 ID。我想要的 ID 采用这种格式:(ABCDEF2015xxx)。例如,在 2015 年注册的第一个用户将具有此 ID:ABCDEF2015001。下一个用户的 ID 为:ABCDEF2015002。第二年,第一个用户将拥有 ID:ABCDEF2016001。

问候。

4

1 回答 1

0

我认为您可以通过使用触发器来实现这一点。我从来没有用过mysql。但是用谷歌搜索并写了一些示例触发器。我可能不会那样工作,你可能需要解决一些问题。但是您可以遵循相同的想法。

CREATE TRIGGER tg_table1_insert
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
  INSERT INTO table1_seq VALUES (NULL);
    $query = mysql_query(CONCAT('SELECT max(CAST(SUBSTRING(id,11) AS BIGINT)) as id FROM table1 where SUBSTRING(ID,7,4) =',CAST(YEAR() AS CHAR))); 
    while ($row = mysql_fetch_object($query)) {
    $lastId =  $row->id;
  }
  if($lastid IS NULL) THEN
  $newid = CONCAT('ABCDEF', CAST(YEAR() AS CHAR), '001')
  ELSE
  $newid = CONCAT('ABCDEF', CAST(YEAR() AS CHAR), CAST($lastId+1 AS CHAR))
  END IF;
  SET NEW.id = $newid;
END$$
于 2015-07-26T22:37:12.180 回答