【问题标题】:how to select some record by random between the some records?如何在一些记录之间随机选择一些记录?
【发布时间】:2014-12-13 20:07:02
【问题描述】:

我有一张图片表,其中包含这样的一些列:id, path, name, likeCount

我想要一个查询,在likeCount 最高的 20 张图片中随机选择一张图片。

你有什么想法吗?

【问题讨论】:

  • 第一个,实际上我想从那 20 张图片中选择一张

标签: mysql sql select random


【解决方案1】:

在这种情况下,您需要分两步完成:

首先,您需要创建一个视图来存储likeCount 最高的前 20 张图像:

    CREATE VIEW first_Twenty_images AS
    SELECT *
    FROM images_table
    ORDER BY likeCount DESC
    LIMIT 20

之后,您可以使用我们之前创建的视图从中选择一个随机元素:

SELECT * FROM first_Twenty_images ORDER BY RAND() 

【讨论】:

    【解决方案2】:

    尝试这样未测试。

    Select * from ( select @a:=@a+1 no, id, path, name, likeCount from 
    table1,(SELECT @a:= 0) AS a order by  likeCount desc limit 20 ) as tt order by
    Floor(RAND() * 20) limit 1
    

    【讨论】:

      【解决方案3】:

      您可以在查询中使用 rand()

        SELECT * FROM table_name ORDER BY RAND() 
      

      【讨论】:

        猜你喜欢
        • 2011-02-08
        • 2011-06-11
        • 2020-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多