数据分析

mysql---随机获取10%的数据

2019-07-02  本文已影响17人  默直

mysql---随机获取10%的数据

       最近在研究从某张表中随机获取百分之十的数据,查询各大网站,基本上都使用的是rand()函数,完全看不懂,感觉也不太符合我的需求,所以决定自己研究一下,怎么实现此需求。

查询原始数据条数

select COUNT(1) FROM emp;

2766条原始数据,10%数据即为:276.66,取277条数据

原始数据 原始数据条数

首先,设置一变量;

SET @sql =NULL;


第二,查询表中数据的总数并乘以0.1(百分之十即0.1)-->获取10%的变量值

SELECT

ROUND(COUNT(1)*0.1,0) INTO @sql

FROM emp;


第三,拼接sql.

利用concat()函数,拼接sql,是指达到我们想要的结果。

concat('SELECT * FROM emp ORDER BY RAND() LIMIT ', @sql);


第四,执行;

PREPARE stmt from @sql;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;


第五,运行结果即可得到我们所需要的数据

打印结果

最后,上完整代码:

SET @sql =NULL;

SELECT

ROUND(COUNT(1)*0.1,0) INTO @sql

FROM emp;

SET @sql=concat('SELECT * FROM emp ORDER BY RAND() LIMIT ', @sql);

PREPARE stmt from @sql;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;


(完)

上一篇 下一篇

猜你喜欢

热点阅读