我正在为一位医生开发一个供他个人使用的小软件。他希望患者的唯一id是年份、月份和该月的患者数量的组合。例如,对于2016年7月的第五个患者,id应为2016-07-05,当月份发生变化时,id应再次重置为1。如何在mysql数据库中实现?我可以把它放在php代码中,但我想把它放在数据库表中,并保存每次执行的代码行。我到处找,但还是找不到解决办法。
发布于 2016-09-16 19:59:30
您可以使用类似以下内容:
CONCAT(YEAR(NOW()),'-',MONTH(NOW()), '-', IFNULL((SELECT MAX(P) FROM person WHERE <...>)+1,1));但这需要你在某个地方有一个柜台。
发布于 2016-09-16 21:04:32
这个问题只需对表中的id进行少量操作即可解决。
2016-09-id,仅将2016-09-与当前日期比较连接<>G210
以下是表person(id, name)的查询示例
insert into person(id, name)
select if(max(id) is null, concat(date_format(now(), '%Y-%m-'), '1'),
if(max(substr(id, 1, 8)) = date_format(now(), '%Y-%m-'),
concat(date_format(now(), '%Y-%m-'),
max(substr(id, 9)+1)),
concat(date_format(now(), '%Y-%m-'), 1))) as nextid, 'lastperson'
from person;https://stackoverflow.com/questions/39530807
复制相似问题