按时间戳选择块顺序,并按id随机化

时间:2014-05-21 08:41:47

标签: php mysql sql codeigniter

我有一个包含超过500k行的庞大数据库,我想选择按时间戳排序的前1000个ID然后随机播放结果。 Php shuffle()以某种方式记忆昂贵或缓慢。我想在MySQL数据库中尝试一下。可能吗?有哪些替代方案?我还实现了一个限制和偏移来实现分页,所以我想做的是用简短的单词来获取页面并随机播放结果。

我如何在SQL中实现,或者实际上我喜欢使用Codeigniters活动记录。

ID, | timestamp, | data...
--------------------------
 0  | 2014-00-.. | some data..
 1  | 1987-00-.. | .
 .  | 2004-00-.. | .
 .  | 1546-00-.. | .

1 个答案:

答案 0 :(得分:2)

SELECT * FROM (
   SELECT * FROM table ORDER BY timestamp LIMIT 1000
) as a ORDER BY RAND()