我有一个包含超过 50 万行的庞大数据库,我想选择按时间戳排序的前 1000 个 ID,然后将结果打乱。 Php shuffle()
不知何故会占用大量内存或变慢。我现在想在 MySQL 数据库中尝试它。是否可以?有哪些选择?我还实现了一个limit和offset来实现分页,所以我想做的就是简而言之就是获取页面并对结果进行shuffle。
我如何在 SQL 中执行此操作,或者实际上我喜欢使用 Codeigniters 事件记录。
ID, | timestamp, | data...
--------------------------
0 | 2014-00-.. | some data..
1 | 1987-00-.. | .
. | 2004-00-.. | .
. | 1546-00-.. | .
最佳答案
SELECT * FROM (
SELECT * FROM table ORDER BY timestamp LIMIT 1000
) as a ORDER BY RAND()
关于php - 按时间戳选择 block 顺序并按 id 随机化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23778155/