私の選択は次のようになり、最大のIDからフィールドが返されます...
SELECT * FROM Pontos WHERE IdPonto = (SELECT MAX(IdPonto) FROM Pontos)
しかし、今は 2 番目に大きいフィールドだけを選択したいと考えています。
私の選択は次のようになり、最大のIDからフィールドが返されます...
SELECT * FROM Pontos WHERE IdPonto = (SELECT MAX(IdPonto) FROM Pontos)
しかし、今は 2 番目に大きいフィールドだけを選択したいと考えています。
SELECT * FROM Pontos WHERE IdPonto = (SELECT IdPonto FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1)
動作するはずです。
これはそれを行う1つの方法です:
SELECT * FROM Pontos ORDER BY Id DESC LIMIT 1 OFFSET 1
(sqlite 構文についてはよくわかりませんが、詳細についてはこの SO スレッドをお読みください: Sqlite LIMIT / OFFSET query )
編集:この場合、ネストされたクエリを実行する必要はないと思います。
SELECT * FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1
これは標準 SQL で記述されており (LIMIT と OFFSET は使用しません)、動作するはずです。
SELECT * FROM Pontos WHERE IdPontos = (
SELECT MAX(t1.IdPontos) FROM Pontos t1
WHERE t1.IdPontos not in (SELECT MAX(IdPontos) FROM Pontos)
)