0

タイムスタンプ付きの行を含むテーブルがあります。

通常、時間に応じて最新の20行を取得したい場合。私が使う:

$sql = "SELECT * 
    FROM comment 
    ORDER BY time DESC 
    LIMIT 20";

しかし今、最新のコメントを取得したいのは、最新の 20 行LIMITから 10 行までです。つまり、行 21 ~ 30 です (もちろん、すべてはタイムスタンプに従っています)。

MySQLを使用してそれを行うにはどうすればよいですか?

4

5 に答える 5

3

MySQL には、LIMIT で使用できる組み込みのオフセットがあります。

$sql = "SELECT * FROM comment ORDER BY time DESC LIMIT 10, 20";

また、この SO 投稿を参照してください: MySQL LIMIT/OFFSET: 最初の X を除くすべてのレコードを取得する

于 2013-03-16T08:44:30.733 に答える
1

21から30のレコードから選択されることを願っています

sql = "SELECT * FROM comment ORDER BY ID DESC LIMIT 20, 10";
于 2013-03-16T09:46:58.203 に答える
1
$sql = "SELECT * FROM comment ORDER BY time DESC LIMIT 20, 10";
于 2013-03-16T09:02:20.790 に答える
0

制限の組み合わせを試す

$sql = "select * from (SELECT * FROM comment ORDER BY time DESC LIMIT 30) as A order by time ASC limit 10";

ただし、他の人が投稿したmysql組み込みオフセットメソッドの方が見栄えがします。

于 2013-03-16T08:44:40.270 に答える
-1

次の 2 つのオプションがあります。

  • 30 行を取得し、PHP を使用して結果セットを 20 のグループと 10 のグループに分割します。
  • 20 行用と 10 行用の 2 つのクエリを送信します。
于 2013-03-16T08:44:54.970 に答える