如何在mysql中创建一个随机的4位数字

时间:2010-10-19 00:49:48

标签: mysql

我有一个包含数百个用户的表,我想创建一个4位数的密码,就像使用UPDATE语句为每个用户在ATM机上使用的密码一样。它们不必是唯一的,但我不想使用自动编号类型的字段,因此一家公司不能轻易猜出另一个用户的密码。最简单,最简单的方法是什么?

注意:此密码用作另一层身份验证,他们还需要密码才能登录。

3 个答案:

答案 0 :(得分:9)

来自Mysql docs ...

获得i <= R <1的范围内的随机整数R. j,使用表达式FLOOR(i + RAND()*(j-i))。例如,为了获得范围7 <= R <1的范围内的随机整数。 12,您可以使用以下语句:

SELECT FLOOR(7 +(RAND()* 5));

update user set pin=(select floor(0+ RAND() * 10000)) where uid=<user_uid>;

此外,我认为您需要将引脚列定义为

pin int(4) zerofill not null 

我想。

答案 1 :(得分:3)

有没有理由不能做到

UPDATE `users` set `pin`=FLOOR(10000*RAND());

答案 2 :(得分:3)

我认为类似于SUBSTRING(FLOOR(RAND()* 9999 + 10000),2)会做到吗?