代码之家  ›  专栏  ›  技术社区  ›  jimiyash

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

  •  2
  • jimiyash  · 技术社区  · 14 年前

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

    3 回复  |  直到 14 年前
        1
  •  9
  •   Matt Phillips    14 年前

    Mysql docs

    要获取i<=R<j范围内的随机整数R,请使用表达式FLOOR(i+RAND()*(j i))。例如,要获取7<=R<12范围内的随机整数,可以使用以下语句:

    选择楼层(7+(RAND()*5));

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

    我还认为你需要定义pin列,比如

    pin int(4) zerofill not null 
    

        2
  •  3
  •   zebediah49    14 年前

    你为什么不能

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

    ?

        3
  •  3
  •   Onkelborg    14 年前