Jak uzyskać pierwszy / górny wiersz tabeli w Sqlite za pośrednictwem zapytania SQL


90

Muszę pobrać pierwszy / górny wiersz tabeli w bazie danych Sqlite.

Ale mój program zgłasza SQLException „Sqlite Syntax Error: Błąd składni w pobliżu„ 1 ”” dla zapytania, którego używam:

SELECT TOP 1 * 
FROM SAMPLE_TABLE

Myślę, że jest to składnia szczególnie dla MS SQL SERVER i MS ACCESS. W tej chwili używam.

SELECT *
FROM SAMPLE_TABLE
LIMIT 1

Jakie jest najlepsze rozwiązanie tego problemu?


Należy wspomnieć, że programista nie powinien polegać na fizycznej kolejności rekordów w tabeli. To jest pomysł na niebezpieczeństwo.
Ruslan Zasukhin

Odpowiedzi:


143

Użyj następującego zapytania:

SELECT * FROM SAMPLE_TABLE ORDER BY ROWID ASC LIMIT 1

Uwaga: szczegółowe informacje dotyczące identyfikatorów wierszy Sqlite znajdują się tutaj .


28

LIMIT 1jest tym, czego chcesz. Pamiętaj tylko, że zwraca to pierwszy rekord w zestawie wyników niezależnie od kolejności (chyba że określisz orderklauzulę w zewnętrznym zapytaniu).


1
LIMIT 1wykonuje pełne zapytanie, a następnie odrzuca niepotrzebne wyniki. Istnieje kilka dyskusji na temat list mailingowych i COUNT(*). Różni się od znalezienia pierwszego pasującego rekordu z TOP 1. Po znalezieniu pierwszego rekordu zapytanie może się zatrzymać i zwrócić wynik.
jww
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.