【问题标题】:Return random rows only once in mysql在mysql中只返回一次随机行
【发布时间】:2018-05-26 08:40:07
【问题描述】:

我正在尝试使用RAND() 函数从 mysql 中检索随机行。但在结果行中重复不止一次。有什么方法可以返回随机行,使得一行只返回一次?

我的查询是:SELECT h.recid recid, h.name name, h.subtitle subtitle, h.pricingfrom pricingfrom FROM holydays h ORDER BY RAND()

我找到了this 解决方案,但我不明白它是如何工作的,因为我没有任何限制...... 任何答案将不胜感激。!

【问题讨论】:

    标签: php mysql random


    【解决方案1】:

    查询的ORDER BY 子句与结果集无关,除非可能正在使用LIMIT,它不在这里。在我看来,您的表中有一些重复的记录。如果你想要一个没有重复的随机排序,那么选择DISTINCT

    SELECT DISTINCT
        recid,
        name,
        subtitle,
        pricingfrom
    FROM holydays
    ORDER BY RAND();
    

    【讨论】:

    • 我的表不包含任何重复的条目。我尝试使用DISTINCT,但结果仍然相同
    • @Aishwaryas 如果您选择 distinct,那么您无法获得重复记录。所以现在的问题是你如何定义“重复”?
    【解决方案2】:

    通过随机列按顺序工作 例如,有 id、name、emai 有时它会订购 id、name、email 或一些时间 name、id、emai 等等等,它在 asc 中有一些时间顺序,在 desc 中有一些时间顺序。这就是逻辑。

    【讨论】:

    • 那么我应该怎么做才能完成我的任务呢?
    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多