>我的表结构
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 列包含这样的数据
房源ID:4395 0001
用户名:傻瓜
销:4395
然而下一个用户有 id=PIN#0002,其中 pin 列是自动随机 4 位数字
这在 MySQL 中可行还是我需要 PHP 它?
您可以使用 RAND()
-函数获取一个随机数:
如手册中所述,要获得特定范围内的随机数,您可以使用:
FLOOR(i + RAND() * (j – i))
其中i
是最小数量,j
是最大数量 + 1。因此,要创建一个包含四位数字的数字,您可以使用:
FLOOR(1000 + RAND() * (10000 – 1000))
如果你也想有前导零,你可以把它与LPAD()
结合起来:
LPAD(FLOOR(RAND() * 10000), 4, '0')