MySql随机化最后10行

时间:2011-07-08 08:22:27

标签: 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行开始,我需要选择一行,它必须是随机的,我得到的是哪一行。

这可能吗?

由于

2 个答案:

答案 0 :(得分:9)

假设time是插入记录的时间,这将从表格中获取最新的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)

...试

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

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