我有一个名为 events 的 mysql 表。一些事件是特色。我想随机显示两个最新的特色事件之一。 “时间戳”字段包含事件创建时间的 UNIX 时间戳。
查询现在看起来像这样:
$query = "SELECT * FROM events WHERE featured = 1 ORDER BY timestamp DESC LIMIT 2;";
有没有一种方法可以将查询语法化为仅返回这两个事件之一并立即显示它,或者我应该使用 php 绕过它?
这里推荐什么?
最佳答案
根据 MySQL documentation for RAND()
使用 ORDER BY RAND() LIMIT 1;
(靠近解释的底部)。我不确定你是否可以在没有嵌套的情况下做到这一点,但考虑到你的嵌套表格只有 2 行,它不应该那么昂贵。
SELECT * FROM
(SELECT * FROM events WHERE featured = 1 ORDER BY timestamp DESC LIMIT 2)
ORDER BY RAND() LIMIT 1;
关于php - 显示 mysql 随机结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556330/