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列にこのようなデータを含めることです

ID: 4395 0001

ユーザー名:ばか

ピン: 4395


それでも nextuser には id=PIN#0002 があり、ピン列は自動ランダム 4 桁です

これはmysql内で実行可能ですか、それともphpする必要がありますか?

4

1 に答える 1

0

-関数を使用しRAND()て乱数を取得できます。

マニュアルに記載されているように、特定の範囲内で乱数を取得するには、次を使用できます。

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

は最小i数でj、最大数 + 1 です。したがって、4 桁の数を作成するには、次のように使用できます。

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

先行ゼロも使用したい場合は、これを次のように組み合わせることができますLPAD()

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