J'ai besoin de récupérer la première / première ligne d'une table dans une base de données Sqlite.
Mais mon programme lève une SQLException "Sqlite Syntax Error: Syntax error near '1'" pour la requête que j'utilise:
SELECT TOP 1 *
FROM SAMPLE_TABLE
Je suppose que c'est une syntaxe en particulier pour MS SQL SERVER et MS ACCESS. En ce moment, j'utilise.
SELECT *
FROM SAMPLE_TABLE
LIMIT 1
Quelle est la meilleure solution à ce problème?
Réponses:
Utilisez la requête suivante:
SELECT * FROM SAMPLE_TABLE ORDER BY ROWID ASC LIMIT 1
Remarque: les références d'identifiant de ligne de Sqlite sont détaillées ici .
la source
LIMIT 1
est ce que vous voulez. Gardez simplement à l'esprit que cela renvoie le premier enregistrement du jeu de résultats quel que soit l'ordre (sauf si vous spécifiez uneorder
clause dans une requête externe).la source
LIMIT 1
exécute la requête complète, puis ignore les résultats inutiles. Il existe plusieurs discussions sur la liste de diffusion à ce sujet etCOUNT(*)
. C'est différent de trouver le premier enregistrement correspondant avecTOP 1
. Une fois le premier enregistrement trouvé, la requête peut s'arrêter et renvoyer le résultat.