テーブルの最後の行以外をすべて選択するにはどうすればよいですか?
最後のビアを選択できることはわかってSELECT item FROM table ORDER BY id DESC LIMIT 1いますが、最後以外のすべてを選択したいです。
これどうやってするの?
ASC行数がわからないため、特定の量を選択して使用しても機能しません。
行数を数えてその量を取り、その -1 を選択して使用することを考えましORDER BY id ASCたが、もっと簡単な方法はありますか?
ありがとう。
テーブルの最後の行以外をすべて選択するにはどうすればよいですか?
最後のビアを選択できることはわかってSELECT item FROM table ORDER BY id DESC LIMIT 1いますが、最後以外のすべてを選択したいです。
これどうやってするの?
ASC行数がわからないため、特定の量を選択して使用しても機能しません。
行数を数えてその量を取り、その -1 を選択して使用することを考えましORDER BY id ASCたが、もっと簡単な方法はありますか?
ありがとう。
Id が一意の場合は、次のようにできます。
SELECT ...
FROM MyTable
WHERE Id < (SELECT MAX(Id) FROM MyTable)
これを行う最も簡単な方法は、アプリケーションで行を破棄することです。計算された制限を使用して、SQL で実行できます。として計算し(SELECT COUNT(*) FROM T) - 1ます。
または:
SELECT *
FROM T
EXCEPT
SELECT TOP 1 *
FROM T
ORDER BY id ASC
最後の行を除く。
このようなものが動作するはずです
select *
from table
where id not in (SELECT id FROM table ORDER BY id DESC LIMIT 1)
LIMIT はパラメーターを取得できないため、動的クエリを作成する (詳細については、この投稿を参照してください - LIMIT をパラメーターとして MySQL sproc に渡す) か、アプリケーションでフィルター処理するという 2 つのオプションがあります。