我有一个图像表,其中包含一些列:id, path, name, likeCount
我想要一个查询,在具有最高likeCount
的20张图片之间随机选择图片。
你有什么想法吗?
答案 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()