php - 如何在查询中组合 RAND 和 DESC

标签 php mysql

我有一个问题:

$msg_check = mysql_query ("SELECT * FROM msgs WHERE name='$name' ORDER BY replies DESC LIMIT 5");
while($row = mysql_fetch_array($msg_check)) {
$comment = $row['comment'];
$nickname = $row['nickname'];

我需要做的是取5条回复最多的评论,随机排序。 我尝试将 RAND 与 DESC 结合使用,但失败了:/

最佳答案

您可以在 ORDER BY 子句中应用使用 RAND() 的外部查询:

SELECT *
FROM (
  SELECT * 
  FROM msgs 
  WHERE name='$name' 
  ORDER BY replies DESC LIMIT 5) AS t
ORDER BY RAND()

注意:最好在 SELECT 子句中明确命名每个字段,而不是使用 *

关于php - 如何在查询中组合 RAND 和 DESC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37874824/

相关文章:

mysql - 从 MySql 查询计算方程

MySQL 存储过程 : How to declare a Cursor for a Select from a temporary table?

mysql - 为用户单独的数据库表?

php - 带有强制分页符的打印表

java - Android Json HttpGet/Post HttpResponse

c# - Excel货币数据根据区域设置而变化

mysql - rails :Add foreign key to primary key of multiple columns

具有 FOUND_ROWS() 和 WHERE 条件的 PHP Mysql 总行数

PHP 服务 MP4 - Chrome "Provisional headers are shown/request is not finished yet"错误

php - 具有 php 属性的 JoinColumns/复合键