I need to fetch the first/top row of a table in a Sqlite database.
But my program throws an SQLException "Sqlite Syntax Error: Syntax error near '1' " for the query that I am using:
SELECT TOP 1 *
FROM SAMPLE_TABLE
That I guess is a syntax particularly for MS SQL SERVER and MS ACCESS. Right now I am using.
SELECT *
FROM SAMPLE_TABLE
LIMIT 1
What is the best solution for this problem?
Use the following query:
SELECT * FROM SAMPLE_TABLE ORDER BY ROWID ASC LIMIT 1
Note: Sqlite's row id references are detailed here.
LIMIT 1
is what you want. Just keep in mind this returns the first record in the result set regardless of order (unless you specify an order
clause in an outer query).
Success story sharing
LIMIT 1
executes the full query, and then discards the unneeded results. There are several mailing list discussions about it andCOUNT(*)
. It is different than finding the first matching record withTOP 1
. Once the first record is found the query can stop and return the result.