zoukankan      html  css  js  c++  java
  • sql随机

    想从MySQL数据库中随机取一条或者N条记录时,最好把RAND()生成随机数放在JOIN子查询中以提高效率。

    SELECT id FROM table ORDER BY RAND() LIMIT n;
    

    改造成下面这个:

    SELECT id FROM table t1 JOIN (SELECT RAND() * (SELECT MAX(id) FROM table) AS nid) t2 ON t1.id > t2.nid LIMIT n;
    

    如果想要达到完全随机,还可以改成下面这种写法:

    SELECT id FROM table t1 JOIN (SELECT round(RAND() * (SELECT MAX(id) FROM table)) AS nid FROM table LIMIT n) t2 ON t1.id = t2.nid;
    

    就可以享受在SQL中直接取得随机数了,不用再在程序中构造一串随机数去检索了。查询结果可能不全

  • 相关阅读:
    C++基础学习1-编译与链接
    html学习
    使用BP拦截POST请求包
    2019.9.17
    搭建LAMP环境
    2019.9.16
    2019.9.12
    2019.9.11
    手脱无名壳tslgame_rl
    一款自制壳的脱壳
  • 原文地址:https://www.cnblogs.com/yoursoul/p/4998489.html
Copyright © 2011-2022 走看看