今天项目中碰到,要随即取出个数记录,数据库mySql5.1
开始思考用java前台实现,但是要经历一个循环,而且要先拿出总记录数,感觉效率太低.所以就查找mySql文档发现有这样的功能,文档如下:
RAND() RAND(N)
返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。若已指定一个整数参数 N ,则它被用作种子值,用来产生重复序列。
mysql> SELECT RAND();
-> 0.9233482386203
mysql> SELECT RAND(20);
-> 0.15888261251047
mysql> SELECT RAND(20);
-> 0.15888261251047
mysql> SELECT RAND();
-> 0.63553050033332
mysql> SELECT RAND();
-> 0.70100469486881
mysql> SELECT RAND(20);
-> 0.15888261251047
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句:
SELECT FLOOR(7 + (RAND() * 6));
在ORDER BY语句中,不能使用一个带有RAND()值的列,原因是 ORDER BY 会计算列的多重时间。然而,可按照如下的随机顺序检索数据行:
mysql> SELECT * FROM tbl_name ORDER BY RAND();
ORDER BY RAND()同 LIMIT 的结合从一组列中选择随机样本很有用:
mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d
-> ORDER BY RAND() LIMIT 1000;
注意,在WHERE语句中,WHERE每执行一次, RAND()就会被再计算一次。
RAND()的作用不是作为一个精确的随机发生器,而是一种用来发生在同样的 MySQL版本的平台之间的可移动ad hoc随机数的快速方式。
就是这个Rand()函数,配合limit语句就可以轻松实现随即取任意记录.
分享到:
相关推荐
My SQL 5.1 中文版文档(DOC)
My SQL 5.1中文帮助文档,包括安装、开发等说明
SQL脚本智能提示_SQLPrompt5.1破解版
SQL Prompt v5.1.8.2
My Sql5.1中文参考手册 减少资源分
5.1单表查询-讲课记录.sql
lnmp(sql5.1)-memcache-memadmin管理
SQL-Front是一款比MySQL自身提供的GUI工具要出色的一款GUI管理软件,软件很小,占用内存低,但效率非常之高,使用非常舒服。SQL-Front 5.1 注册码,在最新的SQL-Front 5.1 build416 中测试通过,注意:输入注册码的...
1.Patch 2. Generate keygen 3. Generate code
SQLDelta.v5.1.1.98.Cracked sql数据库比较工具 安装后覆盖即可
SQL_Prompt_5.1完全破解+使用教程
SQL Prompt 5.1 中一些教程使用教程。
SQL Prompt 5.1.8.2 完美破解补丁。试过多个破解补丁,最后终于找到了这个可以破解的,亲测可用。 压缩包内包含SQL Prompt 5.1.8.2原版安装文件和破解文件。 破解步骤如下: 1:安装原程序,记住必须是5.1.8.2版 2...
RedGate SQL Prompt 5.1.8.2 安装文件
My sql帮助文档,完善及最新的版本,用来开发应用网站都是不错的选择。
有人说这个不能用,我再说明详细点,先运行sqlassist_setup.exe进行安装,然后运行sql.assistant.v5.1.7.0-patch.exe进行破解,点path按钮,会提示选择对应的exe文件,请选择你安装刚才安装文件的路径下的exe文件就...
IIS5.1安装SQLserver必备,难得找的直接下吧。
通过编写一个SQl语句,获取指定的数据表的所有数据列的列名。
SQL sever 2005安装方法(xp),IIS5.1