Preciso buscar a primeira linha / superior de uma tabela em um banco de dados Sqlite.
Mas meu programa lança uma SQLException "Sqlite Syntax Error: Syntax error near '1'" para a consulta que estou usando:
SELECT TOP 1 *
FROM SAMPLE_TABLE
Isso eu acho que é uma sintaxe particularmente para MS SQL SERVER e MS ACCESS. Agora estou usando.
SELECT *
FROM SAMPLE_TABLE
LIMIT 1
Qual é a melhor solução para este problema?
Respostas:
Use a seguinte consulta:
SELECT * FROM SAMPLE_TABLE ORDER BY ROWID ASC LIMIT 1
Observação: as referências de id de linha do Sqlite são detalhadas aqui .
fonte
LIMIT 1
é o que você quer. Apenas tenha em mente que isso retorna o primeiro registro no conjunto de resultados, independentemente da ordem (a menos que você especifique umaorder
cláusula em uma consulta externa).fonte
LIMIT 1
executa a consulta completa e, em seguida, descarta os resultados desnecessários. Existem várias discussões em listas de discussão sobre ele eCOUNT(*)
. É diferente de encontrar o primeiro registro correspondente comTOP 1
. Assim que o primeiro registro for encontrado, a consulta pode parar e retornar o resultado.