mysql数据表中取几列_MySQL实现表中取出随机数据
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实现表中取出随机数据相关推荐
- mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...
- (PD)PowerDesigner设计表时显示注释列Comment,Columns中没有Comment的解决办法(关联MySQL)
1.在所要编辑的表上双击,打开Table Properties窗口,并将上面的选项卡切换到Columns,如下图: 2.点击Customize Columns and Filter按钮,下图红框中的按 ...
- R语言dplyr包group_by函数、quantile函数、summarise函数计算dataframe数据中指定数值数据列在每个分组中的多个分位数值
R语言dplyr包group_by函数.quantile函数.summarise函数计算dataframe数据中指定数值数据列在每个分组中的多个分位数值(Calculate Percentile Va ...
- mysql排序显示行数的语句_MySQL中sql语句count(*),orderby,随机数据展示。
count(*)这么慢,我该怎么办? MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高: 而 InnoDB 引擎就麻烦了,它执行 count ...
- Mysql给一个大表加一列_MySQL 大表添加一列的实现
问题参考自: https://www.zhihu.com/question/440231149 ,mysql中,一张表里有3亿数据,未分表,要求是在这个大表里添加一列数据.数据库不能停,并且还有增删改 ...
- mysql添加列名在第一列_mysql在表的某一位置增加一列、删除一列、修改列名
如果想在一个已经建好的表中添加一列,可以用以下代码: alter table 表名 add column 列名 varchar(20) not null; 这条语句会向已有的表中加入一列,这一列在表的 ...
- mysql开发中遇到的坑_mysql优化过程中遇见的坑(mysql优化问题特别注意)
单条查询最后添加 LIMIT 1,停止全表扫描. 对于char(4) 或者vachar(4),无论是中文还是英文都是存储四个字符,注意是字符而不是字节. 如果一个字段未int类型,此类型只有0.1两个 ...
- mysql创建表时设置外键_mysql创建表时设置外键约束的方法
mysql创建表时设置外键约束的方法 发布时间:2020-06-17 15:54:11 来源:亿速云 阅读:312 作者:元一 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中, ...
- mysql字段超长会报错吗_MySQL使用过程中的报错处理(持续更新)
MySQL使用过程中的报错处理(持续更新) 一.数据库初始化 1.Percona的MySQL 5.6.20版本数据库初始化 初始化命令(MySQL 5.6版本不适用mysqld命令进行初始化) ./s ...
最新文章
- whoosh学习(1)
- android Camera照相机技术(一)
- 程序员都痛恨开会?多开 1 个会,我少写 1000 行代码......
- 4节点近160万IOPS:SDS/超融合测试不能只看数字
- (0055)iOS开发之dealloc认识
- 笔记-高项案例题-2016年下-项目收尾
- The Pilots Brothers' refrigerator
- 用JQUERY为INPUT的TXT类型赋值及取值操作
- LeetCode数据库 176. 第二高的薪水
- 为什么戏说php,PHP语言之戏说PHP框架的味道
- mysql子查询更改指定数据库_MySQL数据库update更新子查询
- Vue购物商城项目(一)
- UE4学习笔记(3)——World Composition无缝拼接地图实现
- 群晖 android软件,群晖-手机端常用App
- Airbnb放弃国内业务,转投外国怀抱?翅膀硬了吗?
- 人工智能会影响哪些行业?
- 000001历史数据_上证指数(000001) 的历史行情2000
- 80年代后最佳阵容之巴西篇
- 基于无线信号的手势识别研究现状调查
- 在手机触摸屏领域应用的触摸芯片