我有一个包含数百个用户的表,我想创建一个4位数的密码,就像使用UPDATE语句为每个用户在ATM机上使用的密码一样。它们不必是唯一的,但我不想使用自动编号类型的字段,因此一家公司不能轻易猜出另一个用户的密码。最简单,最简单的方法是什么?
注意:此密码用作另一层身份验证,他们还需要密码才能登录。
答案 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)会做到吗?