【发布时间】:2014-12-13 20:07:02
【问题描述】:
我有一张图片表,其中包含这样的一些列:id, path, name, likeCount
我想要一个查询,在likeCount 最高的 20 张图片中随机选择一张图片。
你有什么想法吗?
【问题讨论】:
-
第一个,实际上我想从那 20 张图片中选择一张
我有一张图片表,其中包含这样的一些列:id, path, name, likeCount
我想要一个查询,在likeCount 最高的 20 张图片中随机选择一张图片。
你有什么想法吗?
【问题讨论】:
在这种情况下,您需要分两步完成:
首先,您需要创建一个视图来存储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()
【讨论】:
尝试这样未测试。
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
【讨论】:
您可以在查询中使用 rand()
SELECT * FROM table_name ORDER BY RAND()
【讨论】: