2011-06-22 13 views
5

私のデータベースの最後の10個の結果を取得するのに、次のクエリを使用していますが、降順にしないでください。とにかく私はこれをクエリで達成することができますか、それともPHPで処理する必要がありますか?ご協力いただきありがとうございます。クエリ結果の反転

SELECT * FROM MSG ORDER BY id DESC LIMIT 0,10 

答えて

4

を動作するはず

SELECT * FROM (SELECT * FROM MSG ORDER BY id DESC LIMIT 10) AS RequiredLimit ORDER BY id ASC 
4

SELECT * FROM ID BY ORDER(のid DESCをLIMIT 0,10 BY MSGのORDER SELECT * FROM) - あなたの問題を解決するには、次の試してみてください

3

すでに存在しているmysqlの回答とは別に、PHPの解決策は元の結果セットにarray_reverse()を使用することです。

1

ネストされたクエリは1つの答えですが、ネストされたクエリまたはサブクエリよりも2つのクエリを実行する方が最適です。オーバーヘッドを減らす - 私が間違っている場合は私を修正します。

は、私がお勧めしたい:

$row_offset = get_result("SELECT COUNT(*) FROM MSG;") - 10; 

$rows = get_result("SELECT * FROM MSG LIMIT " . $row_offset . ", 10;"); 

は(もちろん!)と仮定すると、get_resultsは()カスタム関数は、クエリを実行し、テーブルからデータを返すことです。