0

次のクエリが正しく機能しています。

 SELECT * 
    FROM (
         SELECT * 
         FROM table 
         WHERE name IS NULL 
         ORDER BY date DESC 
         LIMIT 20
         ) AS T 
    ORDER BY date ASC;

私が欲しいのは、そのsqlselectクエリの上位5つのレコードを選択することです。したがって、私が読んだ投稿によると、TOP5を追加するだけで済みます。以下を参照してください。

 SELECT TOP 5 * 
        FROM (
             SELECT * 
             FROM table 
             WHERE name IS NULL 
             ORDER BY date DESC 
             LIMIT 20
             ) AS T 
        ORDER BY date ASC;

残念ながら、mysqlは構文エラーがあると言っていますが、わかりません。返信ありがとうございます。乾杯。マーク

4

2 に答える 2

4

別の制限を追加するだけです。

 SELECT * 
    FROM (
         SELECT * 
         FROM table 
         WHERE name IS NULL 
         ORDER BY date DESC 
         LIMIT 20
         ) AS T 
    ORDER BY date ASC
    LIMIT 5;
于 2012-04-17T11:25:08.347 に答える
3

TOP句はすべてのデータベースでサポートされているわけではありません

結果の数を制限するためだけなので、LIMITを使用できます

    SELECT  * 
    FROM (
        SELECT * 
        FROM table 
        WHERE name IS NULL 
        ORDER BY date DESC 
        LIMIT 20
    ) AS T 
    ORDER BY date ASC
    LIMIT 5;
于 2012-04-17T11:25:47.863 に答える