Comment obtenir le nombre de lignes du résultat sélectionné à partir de sqlite3?

Je veux obtenir le nombre de lignes sélectionnées ainsi que les données sélectionnées. À l'heure actuelle, je dois utiliser deux instructions sql:

est

select * from XXX where XXX;

l'autre est

select count(*) from XXX where XXX; 

Peut-il être réalisé avec une seule chaîne sql?

J'ai vérifié le code source de sqlite3, et j'ai trouvé la fonction de sqlite3_changes(). Mais la fonction n'est utile que lorsque la base de données est modifié (après insert, delete or update).

Quelqu'un peut m'aider avec ce problème? Merci beaucoup!

  • Bien que la réponse est oui, la plupart des réponses ci-dessous ajouter de la complexité que vous devriez éviter. Il n'y a rien de mal avec l'exécution de deux requêtes. Si vous êtes du traitement des données après la requête, vous pouvez également utiliser count() ou size() méthodes de votre objet de collection, en fonction de la langue que vous utilisez.
  • - Je faire une requête, puis tournez à chaque ligne dans un objet C++ et ajouter les lignes de C++ std::vector. Évidemment, je veux le faire de manière aussi efficace que possible. Et l'ajout d'éléments à un std::vector est nettement plus rapide si vous avez d'abord l'espace de réserve pour le nombre d'articles. Afin de faire une requête pour obtenir le nombre est inutile, parce qu'elle est plus efficace que mes économies de la connaissance de la numération, et l'interrogation de mon std::vector à la fin est également inutile, parce que c'est trop tard pour aider.
InformationsquelleAutor user26404 | 2009-03-02