php - 显示 mysql 随机结果

标签 php mysql

我有一个名为 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/

相关文章:

php - 从远程服务器从phpstorm中的键盘快捷方式运行脚本

php - 使用通配符与窄 mysql 查询提取详细信息

php - 根据键的值将数组拆分成更小的数组?

mysql - Play 服务器随机无法与Mysql建立连接

php - iPhone 位置到 MySQL 数据库

php - 根据 class 或 id 获取图像的 src 属性

mysql - NodeJS 和 MySQL : Error in SQL syntax leading to UnhandledPromiseRejectionWarning

javascript - 获取div中元素的id,然后将它们组合成一个整数

php - 无法通过 PHP 连接到 MySQL,mysql 可以工作,但不能使用 mysqli 或 PDO

php - 从 Kohana 3 中的数据库查询中获取随机行