如何在注册时为用户生成 ID。我想要的 ID 采用这种格式:(ABCDEF2015xxx)。例如,在 2015 年注册的第一个用户将具有此 ID:ABCDEF2015001。下一个用户的 ID 为:ABCDEF2015002。第二年,第一个用户将拥有 ID:ABCDEF2016001。
问候。
如何在注册时为用户生成 ID。我想要的 ID 采用这种格式:(ABCDEF2015xxx)。例如,在 2015 年注册的第一个用户将具有此 ID:ABCDEF2015001。下一个用户的 ID 为:ABCDEF2015002。第二年,第一个用户将拥有 ID:ABCDEF2016001。
问候。
我认为您可以通过使用触发器来实现这一点。我从来没有用过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$$