如何在一些记录之间随机选择一些记录?

时间:2014-10-18 10:10:31

标签: mysql sql select random

我有一个图像表,其中包含一些列:id, path, name, likeCount

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

你有什么想法吗?

3 个答案:

答案 0 :(得分:2)

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

首先,您需要创建一个视图,在该视图中存储具有最高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() 

答案 1 :(得分:1)

尝试这样未经测试。

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

答案 2 :(得分:0)

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

  SELECT * FROM table_name ORDER BY RAND()