在mysql中插入一个唯一的随机字母数字

时间:2015-07-31 04:30:00

标签: mysql database random

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

2 个答案:

答案 0 :(得分: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))))

谢谢。

答案 1 :(得分:0)

您无法生成唯一的随机数。随着时间的推移,随机性将生成已存储的数字。 你需要做一个"准随机"数字,意味着它是基于另一个数据的数字,但它看起来是随机的。您可以使用表格上的主键作为基数来生成"伪随机"编号

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;