8

次の構造のテーブルがあります。

ID | 色

1 | 赤
2| ブルー
3| イエロー
8| パープル
10| 緑



100|黄色

最初の5行のMAXID値を取得できるようにしたいと思います。

たとえば、次のようにします。テーブルLIMIT 5からMAX(ID)を選択します。

これが値10を返すことを願っています

しかし、MySQLは100を返し続けます...MySQLのようにLIMIT句さえ見ません。

4

4 に答える 4

23

上位5つのレコード(ID順に)を選択してから、そのグループの最高値を取得したいようです。もしそうなら:

SELECT
    MAX(ID)
FROM
    ( 
         SELECT ID 
         FROM YourTable
         ORDER BY ID
         LIMIT 5
    ) as T1 
于 2009-07-19T19:57:47.120 に答える
11

これを行うには、副選択よりも良い方法があります。

SELECT id FROM table LIMIT 4,1

1行を取得しますが、最初に4をスキップします。これがMyISAMテーブルの場合は、「IDによる順序」を追加します。

于 2011-06-02T11:01:12.337 に答える
1

副選択を使用します。

SELECT MAX(id) FROM (SELECT id FROM table LIMIT 5);

それは完全に有効なSQLではないかもしれませんが、それはあなたに一般的な考えを与えるはずです。

于 2009-07-19T19:54:54.130 に答える
-1

次の構造のテーブルがある場合

ID | Color

1 | red
2 | blue
3 | yellow
8 | purple
10| green
.
.
.
100|yellow

最初の5つの(AUTO_INCREMENT?)値のMAX ID値は5です。ところで、最初の6つの値のMAX ID値は6です。また、すべての値が100です。よろしくお願いします。

于 2017-10-26T02:07:04.770 に答える