2

最近の 10 件のエントリからの選択は機能していますが、これらの 10 件のエントリから最も人気のあるものを取得する方法がわかりません。また、最も人気のあるエントリの数を数えてパーセンテージで出力するにはどうすればよいですか?

<?php 
    $sql = "SELECT data FROM table_answers ORDER BY id DESC LIMIT 10"; 
    $result = mysql_query ($sql, $db); 
    while ($row = mysql_fetch_array ($result)) 
    { 
         echo "[".$row['data']."]"; 
    } 
?>

また、WHERE値も実行しようとしましたが、結果が返されません。

$sql = "SELECT data FROM table_answers WHERE id IN (SELECT id FROM table_answers
         ORDER BY id DESC LIMIT 10) ORDER BY popularity DESC LIMIT 1"; 
$result = mysql_query ($sql, $db); 
    while ($row = mysql_fetch_array ($result)) 
    { 
        echo " [".$row['data']."] ";  
    }  

ここで私が間違っている可能性があることを知っている人はいますか? お願いします

4

2 に答える 2

2
SELECT data
FROM (
    SELECT data
    FROM table_answers
    ORDER BY id DESC
    LIMIT 10
) t
ORDER BY popularity
于 2012-05-20T15:35:11.400 に答える
2

これで問題は解決するはずです-

SELECT tableorder.* 
FROM (SELECT * 
      FROM table
      ORDER BY id DESC 
      LIMIT 10) tableorder 
ORDER BY tableorder.popularity DESC 
LIMIT 1

内側のクエリは id に基づいて並べ替え、上位 10 行を取得します。外側のクエリは、人気度に基づいて 10 行を再度並べ替え、人気度が最も高い行を返します。

于 2012-05-20T15:37:48.687 に答える