繁体   English   中英

显示mysql随机结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM