0

我的表结构

CREATE TABLE IF NOT EXISTS `patients` (
  `patient_id` int(8) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `pin` int(4) unsigned zerofill NOT NULL,
  `patient_name` varchar(100) COLLATE utf8_bin NOT NULL,
  `patient_global_id` int(50) NOT NULL,
  `patient_dob` date NOT NULL,
  PRIMARY KEY (`patient_id`),
  UNIQUE KEY `pt_global_id` (`patient_global_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

我想要的是让 id 列包含这样的数据

编号:4395 0001

用户名:傻瓜

引脚:4395


然而 nextuser 有 id=PIN#0002 其中 pin 列是自动随机的 4 位数字

这在mysql中可行还是我需要php它?

4

1 回答 1

0

您可以使用RAND()-function 获取随机数:

如手册中所述,要获得特定范围内的随机数,您可以使用:

 FLOOR(i + RAND() * (j – i))

其中i最小数字j是最大数字 + 1。因此,要创建一个四位数的数字,您可以使用:

 FLOOR(1000 + RAND() * (10000 – 1000))

如果你也想有前导零,你可以将它与LPAD()

 LPAD(FLOOR(RAND() * 10000), 4, '0')
于 2012-12-06T17:21:52.833 回答