美文网首页数据分析
mysql---随机获取10%的数据

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

作者: 默直 | 来源:发表于2019-07-02 18:46 被阅读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;


    (完)

    相关文章

      网友评论

        本文标题:mysql---随机获取10%的数据

        本文链接:https://www.haomeiwen.com/subject/knvthctx.html