Php 如何在查询中组合RAND和DESC

Php 如何在查询中组合RAND和DESC,php,mysql,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

我有一个问题:

$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相结合,但失败了:/

试试这个

SELECT * FROM 
 (SELECT * FROM msgs where name='$name' ORDER BY replies DESC LIMIT 5) 
 ORDER BY rand()

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

SELECT *
FROM (
  SELECT * 
  FROM msgs 
  WHERE name='$name' 
  ORDER BY replies DESC LIMIT 5) AS t
ORDER BY RAND()
注意:最好在
SELECT
子句中显式命名每个字段,而不是使用
*

我认为在您的情况下,在单个查询中不可能使用RAND()和DESC。
您应该获取结果,然后尝试array\u rand($your\u array,5)函数。

或者您可以简单地随机化数组