7

テーブルの最後の行以外をすべて選択するにはどうすればよいですか?

最後のビアを選択できることはわかってSELECT item FROM table ORDER BY id DESC LIMIT 1いますが、最後以外のすべてを選択したいです。

これどうやってするの?

ASC行数がわからないため、特定の量を選択して使用しても機能しません。

行数を数えてその量を取り、その -1 を選択して使用することを考えましORDER BY id ASCたが、もっと簡単な方法はありますか?

ありがとう。

4

5 に答える 5

12

Id が一意の場合は、次のようにできます。

SELECT ...
FROM MyTable
WHERE Id < (SELECT MAX(Id) FROM MyTable)
于 2013-10-19T19:41:31.513 に答える
10

これを行う最も簡単な方法は、アプリケーションで行を破棄することです。計算された制限を使用して、SQL で実行できます。として計算し(SELECT COUNT(*) FROM T) - 1ます。

または:

SELECT *
FROM T
EXCEPT
SELECT TOP 1 *
FROM T
ORDER BY id ASC

最後の行を除く。

于 2013-10-19T19:38:02.230 に答える
1

このようなものが動作するはずです

 select * 
 from table
 where id not in (SELECT id FROM table ORDER BY id DESC LIMIT 1)
于 2013-10-19T19:39:53.117 に答える
0

LIMIT はパラメーターを取得できないため、動的クエリを作成する (詳細については、この投稿を参照してください - LIMIT をパラメーターとして MySQL sproc に渡す) か、アプリケーションでフィルター処理するという 2 つのオプションがあります。

于 2013-10-19T19:40:32.460 に答える