【问题标题】:MySql query for random id [duplicate]MySql查询随机ID [重复]
【发布时间】:2011-12-04 09:00:28
【问题描述】:

可能重复:
MySQL select 10 random rows from 600K rows fast

我需要从表中提取一个随机 ID。目前只有少数记录存在,但随着时间的推移它们会增长。获取这个id的方法在Php或者MySql中有哪些,它们之间的取舍、后果是什么。最后一件事我需要速度和性能。

【问题讨论】:

标签: php mysql


【解决方案1】:
select * from YOUR_TABLE order by rand() limit 1

【讨论】:

    【解决方案2】:

    您可以直接在 SQL 中实现这一点:

    SELECT `idfield` FROM `table` ORDER BY RAND() LIMIT 0,1;
    

    也可以see here 获取一些替代方案。

    这将是一种比在 PHP 中构建随机化然后传递给 mySQL 更简单的执行方法,尽管上面的链接详细说明了各种方法的优点。

    【讨论】:

      【解决方案3】:

      SELECT id FROM table ORDER BY RAND() LIMIT 1

      这基本上是:取表,按随机数对记录进行排序,并获取第一条记录的 ID。

      【讨论】:

        【解决方案4】:

        已经有很多问题和答案:

        Random Records Mysql PHP

        mysql query with random and desc

        如果您的记录少于 500,000 条,则 RAND() 非常好。

        SELECT * FROM tbl_name ORDER BY RAND() LIMIT 1 
        

        【讨论】:

          【解决方案5】:

          好吧,您可以使用 RAND() 获得一个随机数,但您仍然必须调用该方法/函数,直到您真正得到一些东西(由于删除,您可以将 1,2,5,6,100 作为 id`s) . 在此http://jan.kneschke.de/projects/mysql/order-by-rand/ 上有一个帖子 程序可能很有用(但据说很慢......): 1 var 获取最大值 然后在 1 和那个区间内产生一个随机数(或得到最小值) 然后查询

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-01-02
            • 1970-01-01
            • 1970-01-01
            • 2018-03-13
            • 1970-01-01
            相关资源
            最近更新 更多