Je veux attraper X lignes, donc je mets LIMIT X
; mais comment puis-je également compter simultanément le nombre total de lignes?
Actuellement, j'utilise deux requêtes distinctes pour le faire
SELECT COUNT(*) FROM col WHERE CLAUSE
SELECT * FROM col WHERE CLAUSE LIMIT X
Existe-t-il un moyen de le faire dans une seule requête?
EDIT: La sortie doit être les cellules col
et le nombre de lignes. En fait, après avoir sélectionné les cellules col
, il doit parcourir le tableau pour compter uniquement.
Je sais qu'il n'est pas possible de fusionner ces deux requêtes, car la première renvoie 1 ligne, mais les secondes X lignes. Je suis curieux de savoir s'il existe une fonction dans mysql pour retourner le nombre de lignes en présence de LIMIT
.
Il semble que vous souhaitiez exécuter LIMIT, mais sachez toujours combien de lignes auraient été renvoyées sans LIMIT. Découvrez RANGÉES TROUVÉES
Utilisez SQL_CALC_FOUND_ROWS
Dans votre requête SELECT, puis exécutez SELECT FOUND_ROWS()
:
SELECT SQL_CALC_FOUND_ROWS field_name,filed_name2 FROM col WHERE CLAUSE LIMIT X;
SELECT FOUND_ROWS() ;
Je sais que c'est un ancien mais il n'est plus valide, avec MySQL> = 8.0.17 cf MySQL Function Found_Rows () Donc nous devons encore émettre les deux requêtes ie. ajoutez-en un avec la COUNT()
, malheureusement.