Quiero atrapar X filas, por lo tanto, configuré LIMIT X
; pero ¿cómo puedo contar simultáneamente el número total de filas también?
Actualmente, uso dos consultas separadas para hacerlo
SELECT COUNT(*) FROM col WHERE CLAUSE
SELECT * FROM col WHERE CLAUSE LIMIT X
¿Hay alguna manera de hacer esto en una consulta?
EDITAR: El resultado debe ser las col
celdas y el número de filas. De hecho, después de seleccionar las col
celdas, debe caminar sobre la mesa para contar solo.
Sé que no es posible fusionar estas dos consultas, ya que la primera devuelve 1 fila, pero la segunda X filas. Tengo curiosidad por saber si hay una función en mysql para devolver el número de filas en presencia de LIMIT
.
Respuestas:
Parece que desea ejecutar el LÍMITE, pero aún sabe cuántas filas se habrían devuelto sin el LÍMITE. Echa un vistazo a FOW FOUND
fuente
FOUND ROWS
, y aunque todavía está ejecutando dos consultas, puede ser un mejor rendimiento que ejecutar una segunda consulta COUNT (*) (dependiendo de las consultas y el conjunto de datos).mysql
eso no nos dejaría solos en un tema tan importante;)Use
SQL_CALC_FOUND_ROWS
en su consulta SELECT y luego ejecuteSELECT FOUND_ROWS()
:fuente
Sé que este es antiguo pero ya no es válido, con MySQL> = 8.0.17 cf Función MySQL Found_Rows () Por lo tanto, todavía tenemos que emitir ambas consultas, es decir. agregue uno con
COUNT()
, desafortunadamente.fuente