2016-06-17 16 views
3

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結合嘗試過,但失敗:/

回答

2

您可以應用該ORDER BY子句中使用RAND()外部查詢:

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

注意:最好明確地指定SELECT子句中的每個字段,而不是使用*

+0

或者你可以簡單地隨機化數組 – Strawberry

1

試試這個

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

我認爲RAND()和DESC是不可能在你的情況下單個查詢。 您應該讀取結果,然後嘗試array_rand($ your_array,5)函數。