Php MySql将最后10行随机化

Php MySql将最后10行随机化,php,mysql,random,Php,Mysql,Random,我需要关于如何随机化最后10行MySql记录的帮助 $mysqld = mysql_query(select * from table where amount > amount2 and code = '$code' order by time DESC limit 1); 从上面的语句中,我需要将最后10行按时间顺序随机排列,但仅限于显示1行 编辑:换句话说,我需要按时间对表格进行排序,然后我需要关注最后10行。从最后10行中,我需要选择一行,它必须是随机的,我得到的是哪一行 这可能

我需要关于如何随机化最后10行MySql记录的帮助

$mysqld = mysql_query(select * from table where amount > amount2 and code = '$code' order by time DESC limit 1);
从上面的语句中,我需要将最后10行按时间顺序随机排列,但仅限于显示1行

编辑:换句话说,我需要按时间对表格进行排序,然后我需要关注最后10行。从最后10行中,我需要选择一行,它必须是随机的,我得到的是哪一行

这可能吗

谢谢

试试

SELECT * FROM (SELECT * FROM yerTable ORDER BY id DESC LIMIT 10) AS tmp ORDER BY RAND() LIMIT 1

显然,如果愿意,可以用任何其他不同的列替换id。

假设
时间
是插入记录的时间,这将从表中获取最新的10行:

SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
  ORDER BY `time` DESC LIMIT 10
现在,您可以将结果用作临时表,随机排序(因为只有10行)并返回一行:

SELECT * FROM (
  SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code'
    ORDER BY `time` DESC LIMIT 10
) AS temptable 
ORDER BY RAND()
LIMIT 1

最后十排是什么?您的查询中有一个限制1,因此它将只返回一行。如果您只想显示1,那么为什么要随机化最后10行?他想要一个随机行,但只从最后10行中选择(按时间顺序)。如果你不随机化最后十行,那么他每次都会得到同一行,这不是他想要的。你的意思是
按时间顺序描述
?我只想显示最后一行的第7行、第6行、第9行,但是是随机的。最后10条记录中的一个随机数据是可能的吗?哪一个1)做了完全不同的事情(从表中的任何位置给出4行),而2)效率极低(对表中的每一行运行
RAND()
;向Filesort先生问好;))我相信他会很聪明地添加第二个限制。我的上述评论不再适用于你对答案的修改。@Brian-是的,但自从我发布我的评论以使其正确后,你已经编辑了你的答案,因为它以前是完全错误的。