从数据库中获取随机的前3条记录:php-mysql

时间:2013-03-23 15:07:25

标签: php mysql

我想创建一个随机图像横幅,从MySQL数据库中获取图像数据。 我只想随机获取最新的三条记录。

如何以随机顺序获取3条最新记录?

我是以下查询:

SELECT * FROM bottom_advt WHERE bottom_advt_page_name='News' ORDER BY RAND() LIMIT 1

但它不起作用。

4 个答案:

答案 0 :(得分:4)

你说3条记录。所以试试:

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