mysql rand函数 怎么添加随机数进去

嘉文四世 发布于 2013/01/14 13:44
阅读 3K+
收藏 1
我要往mysql里添加几十万条测试信息,内容无所谓,但是很想在添加过程中,能往每条信息的备注里添加随机组合的东西,随便是数字也好,字母也好都行,只要是随机组合。
加载中
0
梁小刚
梁小刚
select MD5(RAND())  FROM  dual;
--这个32位。如果觉得长的话用SUBSTRING再截取一下。下面的是取10位
select SUBSTRING(MD5(RAND())FROM 1 FOR 10) FROM  dual;
以上内容仅供参考,望楼主能给个好评。
梁小刚
梁小刚
回复 @未显示 :如 红薯据说,rand只能生成小数字,md5加密之后会生成32位由数字和字母的定长字符串,就是这么简单。
嘉文四世
嘉文四世
这个好,比脚本好用多了,虽然不是很理解,要是有时间稍微帮我分解一下下~
0
红薯
红薯
rand() 函数本身返回的就是一个随机数哦,不过是 0 到 1 之间的小数
嘉文四世
嘉文四世
能加入字母么,刚在网上有看到貌似能加入26个字母以及0~9的数字,组合挺多的,就是看起来太复杂了,所以跑来问问~~
0
十一文
十一文
select  char( rand() *95+32 );
0
嘉文四世
嘉文四世

引用来自“十一文”的答案

select  char( rand() *95+32 );
mysql> select char(rand()*99+19);
+-------------------------+
| char(rand()*99+19) |
+-------------------------+
| N                              |
+-------------------------+
只能生成一个字符啊,能生成一串咩~~随机混乱的一串~~
youngae520
youngae520
最好用时间戳去生成~这样就又能不重复了
0
十一文
十一文

引用来自“梁小刚”的答案

select MD5(RAND())  FROM  dual;
--这个32位。如果觉得长的话用SUBSTRING再截取一下。下面的是取10位
select SUBSTRING(MD5(RAND())FROM 1 FOR 10) FROM  dual;
以上内容仅供参考,望楼主能给你个好评。
这个 貌似正解 呵呵
0
八宝旗
八宝旗

UUID()可以满足

UUID 是一个由5位十六进制数的字符串表示的128比特数字 ,其格式为  aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee :

    • 前3个数字从一个时间戳产生。 
    • 第4 个数字保持暂时唯一性,以防时间戳值失去单一性 (例如, 由于经济时)。
    • 第5个数字是一个 IEEE 802 节点号,它提供空间唯一性。若后者不可用,则用一个随机数字替换。 (例如, 由于主机没有以太网卡,或我们不知道怎样在你的操作系统上找到界面的机器地址 )。假若这样,空间唯一性就不能得到保证。尽管如此,一个冲突的发生机率还是非常低的。

0
l
lqv587
想在线咨询
返回顶部
顶部