【问题标题】:Inserting a unique random alphanumeric number in mysql在mysql中插入一个唯一的随机字母数字
【发布时间】:2015-10-22 15:45:59
【问题描述】:

我想在 mysql 中生成一个唯一的随机字母数字数字,以便通过该数字检索数据库中的每个条目,而且它不会是客户端可以识别的序列。请告诉我如何生成这样的数字。

【问题讨论】:

    标签: mysql database random


    【解决方案1】:

    下面的 sql 给你随机的字母数字。

         SELECT CAST(CONCAT( CHAR(FLOOR(RAND()*26)+65),FLOOR(100+RAND()*(500-100)))
     AS CHAR(50))AS random_alpha_numeric
    

    您可以生成这样的随机数范围。

    语法:FLOOR(min_value+RAND()*(max_value-min_value))

    您可以在下表中插入随机字母数字数字。

    INSERT INTO `table_name` (column_name ) VALUES( CONCAT( 
    CHAR(FLOOR(RAND()*26)+65),FLOOR(100+RAND()*(500-100))))
    

    谢谢。

    【讨论】:

    • SELECT CONCAT( CHAR(FLOOR(RAND()*26)+65),FLOOR(100+RAND()*(500-100))) AS random_alpha_numeric
    • 你能提供你得到什么类型的输出。
    【解决方案2】:

    您无法生成唯一的随机数。随着时间的推移,随机性会生成一个已经存储的数字。 您需要制作一个“准随机”数字,这意味着它是基于另一个数据的数字,但它看起来只是随机的。您可以使用表上的主键作为基数来生成“假随机”数

    INSERT INTO myTable(primaryKey,quasiRandom) 
    SELECT IFNULL(MAX(primaryKey),0)+1, CAST(CONCAT(IFNULL(MAX(primaryKey),0)+1,CHAR(FLOOR(RAND()*26)+65),FLOOR(100+RAND()*(500-100))) AS CHAR(50)) AS random_alpha_numeric FROM myTable;
    

    【讨论】:

    • 我用java制作了一个唯一的随机字母数字并将其连接到数据库。
    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 2011-08-18
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多