【问题标题】:Select rows randomly without changing the order in sql query随机选择行而不改变sql查询中的顺序
【发布时间】:2015-02-23 18:46:29
【问题描述】:

我到处搜索以找到一个 SQL 查询来随机选择行而不更改顺序。几乎每个人都使用这样的东西:

SELECT * FROM table WHERE type = 1 ORDER BY RAND() LIMIT 25 

但是上面的查询改变了顺序。我需要一个在行中随机选择但不更改顺序的查询,因为每条记录也有一个日期。

【问题讨论】:

    标签: sql select random


    【解决方案1】:

    选择随机行,然后重新排序:

    select t.*
    from (select *
          from table t
          where type = 1
          order by rand()
          limit 25
         ) t
    order by datecol;
    

    在 SQL 中,如果您希望行按特定顺序排列,则需要使用显式的order by 子句。您永远不应该依赖没有order by 的结果排序。 SQL 不保证顺序。 MySQL 不保证排序,除非查询有order by

    【讨论】:

    • 我想在 PHPMYADMIN 中导出以上查询结果,但它没有 sql 输出格式,但我可以在其他查​​询中看到 sql 格式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2021-02-06
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多