龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

MySQL中rand 生成随机数代码

时间:2011-03-14 23:24来源:未知 作者:admin 点击:
分享到:
要随机生成字符串代码如下: 在mysql教程中定义一个随机串的方法,然后再sql语句中调用此方法。 随机串函数定义方法: select round(round(rand(),4)*10000); 不用函数直接这样就好了。 非得写

要随机生成字符串代码如下:

在mysql教程中定义一个随机串的方法,然后再sql语句中调用此方法。

随机串函数定义方法:
select round(round(rand(),4)*10000);
不用函数直接这样就好了。

非得写函数的话,就
delimiter $$

create
    function get_rand()
    returns int deterministic
    begin
 declare return_no int;
 select round(round(rand(),4)*10000) into return_no;
 return return_no;
    end$$

delimiter ;

使用随机串函数方法示例:
update demotable set demoname=rand_string(32) where id>23
直接执行即可。


我在最开始测试的时候,就是因为没有加上min(id)的判断,结果有一半的时间总是查询到表中的前面几行。
完整查询语句是:
select * from `table`
where id >= (select floor( rand() * ((select max(id) from `table`)-(select min(id) from `table`)) + (select min(id) from `table`)))
order by id limit 1;
select *
from `table` as t1 join (select round(rand() * ((select max(id) from `table`)-(select min(id) from `table`))+(select min(id) from `table`)) as id) as t2
where t1.id >= t2.id
order by t1.id limit 1;
最后在php教程中对这两个语句进行分别查询10次,
前者花费时间 0.147433 秒
后者花费时间 0.015130 秒

以上就是mysql rand函数实现随机数的方法

精彩图集

赞助商链接