MySQL是开放源代码,MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 那么如何在MySQL实现表中取出随机数据呢?

SELECT * FROM table_name ORDER BY rand() LIMIT 5;

rand在手册里是这么说的:

RAND()

RAND(N)

返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。

mysql> select RAND();

-> 0.5925

mysql> select RAND(20);

-> 0.1811

mysql> select RAND(20);

-> 0.1811

mysql> select RAND();

-> 0.2079

mysql> select RAND();

-> 0.7888

你不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。然而在MySQL3.23中,你可以做: SELECT * FROM table_name ORDER BY RAND(),这是有利于得到一个来自SELECT * FROM table1,table2 WHERE a=b AND c

但我试了一下,8千条记录的表,执行一次需要0.08 sec,.慢了些

后来请教了google,得到如下代码

SELECT *

FROM table_name AS r1 JOIN

(SELECT ROUND(RAND() *

(SELECT MAX(id)

FROM table_name)) AS id)

AS r2

WHERE r1.id >= r2.id

ORDER BY r1.id ASC

LIMIT 5;

执行效率需要0.02 sec.可惜的是,只有mysql 4.1.*以上才支持这样的子查询.

mysql数据表中取几列_MySQL实现表中取出随机数据相关推荐

  1. mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...

  2. (PD)PowerDesigner设计表时显示注释列Comment,Columns中没有Comment的解决办法(关联MySQL)

    1.在所要编辑的表上双击,打开Table Properties窗口,并将上面的选项卡切换到Columns,如下图: 2.点击Customize Columns and Filter按钮,下图红框中的按 ...

  3. R语言dplyr包group_by函数、quantile函数、summarise函数计算dataframe数据中指定数值数据列在每个分组中的多个分位数值

    R语言dplyr包group_by函数.quantile函数.summarise函数计算dataframe数据中指定数值数据列在每个分组中的多个分位数值(Calculate Percentile Va ...

  4. mysql排序显示行数的语句_MySQL中sql语句count(*),orderby,随机数据展示。

    count(*)这么慢,我该怎么办? MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高: 而 InnoDB 引擎就麻烦了,它执行 count ...

  5. Mysql给一个大表加一列_MySQL 大表添加一列的实现

    问题参考自: https://www.zhihu.com/question/440231149 ,mysql中,一张表里有3亿数据,未分表,要求是在这个大表里添加一列数据.数据库不能停,并且还有增删改 ...

  6. mysql添加列名在第一列_mysql在表的某一位置增加一列、删除一列、修改列名

    如果想在一个已经建好的表中添加一列,可以用以下代码: alter table 表名 add column 列名 varchar(20) not null; 这条语句会向已有的表中加入一列,这一列在表的 ...

  7. mysql开发中遇到的坑_mysql优化过程中遇见的坑(mysql优化问题特别注意)

    单条查询最后添加 LIMIT 1,停止全表扫描. 对于char(4) 或者vachar(4),无论是中文还是英文都是存储四个字符,注意是字符而不是字节. 如果一个字段未int类型,此类型只有0.1两个 ...

  8. mysql创建表时设置外键_mysql创建表时设置外键约束的方法

    mysql创建表时设置外键约束的方法 发布时间:2020-06-17 15:54:11 来源:亿速云 阅读:312 作者:元一 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中, ...

  9. mysql字段超长会报错吗_MySQL使用过程中的报错处理(持续更新)

    MySQL使用过程中的报错处理(持续更新) 一.数据库初始化 1.Percona的MySQL 5.6.20版本数据库初始化 初始化命令(MySQL 5.6版本不适用mysqld命令进行初始化) ./s ...

最新文章

  1. whoosh学习(1)
  2. android Camera照相机技术(一)
  3. 程序员都痛恨开会?多开 1 个会,我少写 1000 行代码......
  4. 4节点近160万IOPS:SDS/超融合测试不能只看数字
  5. (0055)iOS开发之dealloc认识
  6. 笔记-高项案例题-2016年下-项目收尾
  7. The Pilots Brothers' refrigerator
  8. 用JQUERY为INPUT的TXT类型赋值及取值操作
  9. LeetCode数据库 176. 第二高的薪水
  10. 为什么戏说php,PHP语言之戏说PHP框架的味道
  11. mysql子查询更改指定数据库_MySQL数据库update更新子查询
  12. Vue购物商城项目(一)
  13. UE4学习笔记(3)——World Composition无缝拼接地图实现
  14. 群晖 android软件,群晖-手机端常用App
  15. Airbnb放弃国内业务,转投外国怀抱?翅膀硬了吗?
  16. 人工智能会影响哪些行业?
  17. 000001历史数据_上证指数(000001) 的历史行情2000
  18. 80年代后最佳阵容之巴西篇
  19. 基于无线信号的手势识别研究现状调查
  20. 在手机触摸屏领域应用的触摸芯片

热门文章

  1. 云栖大会 | 马云提出“新制造”战略将影响全球
  2. 阿里云MaxCompute印度开服,加速大数据产业升级
  3. 一目了然的 Docker 环境配置指南
  4. 十年架构师:我是这样手写Spring的,用300行代码体现优雅之道
  5. 另一种声音:容器是不是未来?
  6. 阿里3篇技术论文入选国际顶级会议FAST2020,全球第一!
  7. 这款耳机堪比千元级的AirPods
  8. 无服务器计算,如何节省时间和成本?
  9. 云数据库精华问答 | 云数据库与其他数据库的关系
  10. java 迷你桌面地图_求教贴,Java桌面小游戏的地图怎么做