Comment obtenir la première / première ligne de la table dans Sqlite via Sql Query


90

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?


Il convient de mentionner que le développeur ne doit pas dépendre de l'ordre physique des enregistrements dans le tableau. C'est une idée de danger.
Ruslan Zasukhin

Réponses:


143

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 .


28

LIMIT 1est 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 une orderclause dans une requête externe).


1
LIMIT 1exécute la requête complète, puis ignore les résultats inutiles. Il existe plusieurs discussions sur la liste de diffusion à ce sujet et COUNT(*). C'est différent de trouver le premier enregistrement correspondant avec TOP 1. Une fois le premier enregistrement trouvé, la requête peut s'arrêter et renvoyer le résultat.
jww
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.