【问题标题】:Select top 5 rows in mysql database table randomly随机选择mysql数据库表中的前5行
【发布时间】:2017-03-15 07:43:12
【问题描述】:

我想随机选择表中的前 5 行。例如,我有一个有一千行的表,现在我想选择第 1 行到第 5 行,但不是升序而是随机的

$query = mysqli_query($con, "SELECT  * FROM table LIMIT 5 ORDER BTW RAND()") ;

但我总是得到一个错误。请有更好想法的人

【问题讨论】:

  • 错误信息是什么?用by替换“BTW”(不管它是什么)
  • ORDER BY,限制范围始终在最后
  • @Jens 错误是因为我在 ORDER BY 之前使用了 LIMIT

标签: mysql


【解决方案1】:

您可以通过子查询来做到这一点,在子查询中过滤您需要的数据并通过主查询打乱

SELECT * FROM (SELECT * FROM table LIMIT 5) _t ORDER BY RAND()

【讨论】:

    【解决方案2】:

    试试这个方法。

    SELECT column FROM table
    ORDER BY RAND()
    LIMIT 5
    

    【讨论】:

    • 我不想从所有行中随机选择 5 行,我想选择前 5 行并随机化它们
    • @user7713452,前 5 行的底数是多少?
    • @Girish 例如,当我在 while 循环中运行它并回显 id 时,我查询的前 5 行的 id 为 2、5、7、8 和 9,我希望它随机回显
    • 请检查我的答案
    【解决方案3】:

    你的想法应该可行。

    SELECT * FROM table ORDER BY RAND() LIMIT 5

    http://www.mysqltutorial.org/select-random-records-database-table.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多