[英]Show mysql random result
我有一个名为events的mysql表。 一些活动是特色。 我想随机显示两个最新的特色事件之一。 字段'timestamp'保存事件创建时间的UNIX时间戳。
查询现在看起来像这样:
$query = "SELECT * FROM events WHERE featured = 1 ORDER BY timestamp DESC LIMIT 2;";
有没有办法语法查询只返回这两个事件中的一个并立即显示它,或者我应该用PHP解决它?
这里建议什么?
使用ORDER BY RAND() LIMIT 1;
,根据RAND()
MySQL文档RAND()
在解释的底部附近)。 我不确定你是否可以在没有嵌套的情况下完成它,但鉴于你的嵌套表只有2行,它不应该是那么昂贵。
SELECT * FROM
(SELECT * FROM events WHERE featured = 1 ORDER BY timestamp DESC LIMIT 2)
ORDER BY RAND() LIMIT 1;
尝试:
SELECT * FROM
(SELECT * FROM EVENTS WHERE featured = 1 ORDER BY `timestamp` DESC LIMIT 2) AS temp
ORDER BY RAND() LIMIT 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.