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