我想创建一个随机图像横幅,从MySQL数据库中获取图像数据。 我只想随机获取最新的三条记录。
如何以随机顺序获取3条最新记录?
我是以下查询:
SELECT * FROM bottom_advt WHERE bottom_advt_page_name='News' ORDER BY RAND() LIMIT 1
但它不起作用。
答案 0 :(得分:4)
SELECT * FROM bottom_advt WHERE bottom_advt_page_name='News' ORDER BY RAND() LIMIT 3
答案 1 :(得分:1)
您将结果限制为使用LIMIT 1
的结果。将其更改为LIMIT 3
以获得三个结果。
答案 2 :(得分:0)
如果您想要最后三条记录中的一条,请尝试此操作:
SELECT * FROM bottom_advt WHERE bottom_advt_page_name='News' AND id+3>last_insert_id() ORDER BY RAND() LIMIT 1
答案 3 :(得分:0)
你可以用这个:
SELECT *
FROM bottom_advt
WHERE ID IN (SELECT * FROM (
SELECT id
FROM bottom_advt
WHERE bottom_advt_page_name='News'
ORDER BY id DESC
LIMIT 3) last)
ORDER BY RAND()
LIMIT 1
子查询将返回具有bottom_advt_page_name='News'
的最后3个ID,外部查询将随机选择其中一个。
请参阅小提琴here。