FOUND_ROWS

FOUND_ROWS()

Una sentencia puede incluir una cláusula LIMIT para restringir el número de filas que el servidor devuelve al cliente. En algunos casos, es posible que se quiera conocer cuántas filas se hubiesen obtenido sin la cláusula LIMIT, pero sin ejecutar la sentencia de nuevo. Para obtener este número, hay que incluir la opción SQL_CALC_FOUND_ROWS en la sentencia , y después invocar la función FOUND_ROWS():

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
       WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();

El segundo devolverá un número que indica cuántas filas hubiera devuelto el primer si no se hubiese usado la cláusula LIMIT. (Si la sentencia no inluye la opción SQL_CALC_FOUND_ROWS, entonces FOUND_ROWS() podrá devolver un valor diferente cuando se usa LIMIT y cuando no se usat.) Si se usa SQL_CALC_FOUND_ROWS ... MySQL debe calcular cuántas filas hay en el conjunto de resultados completo. Sin embargo, esto es más rápido que ejecutar una nueva consulta sin el LIMIT, ya que no es necesario enviar el conjunto de resultados al cliente. SQL_CALC_FOUND_ROWS y FOUND_ROWS() suelen usarse en situaciones en las que se quiere restringir el número de filas que devuelva una consulta, pero tambien se quiere determinar el número de filas en el conjunto de resultados completo sin ejecutar la consulta de nuevo. Un ejemplo es un script web que presente una muestra paginada conteniendo enlaces a páginas que muestran otras secciones del resultado de una búsqueda. Usando FOUND_ROWS() es posible determinar cuantas de esas páginas son necesarias para mostrar el resto de los resultados. El uso de SQL_CALC_FOUND_ROWS y FOUND_ROWS() es más complejo en el caso de consultas que para sentencias sencillas , porque LIMIT puede ocurrir en muchos lugares en una . Debe ser aplicado a sentencias individuales en la , o globalmente al resultado de la UNION completo. El objetivo de SQL_CALC_FOUND_ROWS para es que devuelva el número de filas que serían devueltas sin un LIMIT global. Las condicione para usar SQL_CALC_FOUND_ROWS con son:

  • La palabra clave SQL_CALC_FOUND_ROWS debe aparecer en el primer de la .
  • El valor de FOUND_ROWS() es exaco sólo si se usa . Si se usa sin ALL, se eliminan los duplicados y el valor de FOUND_ROWS() sólo es aproximado.
  • Si no hay una cláusula LIMIT en la , SQL_CALC_FOUND_ROWS se ignora y devuelve el número de filas en la tabla temporal que se crearon al procesar .

SQL_CALC_FOUND_ROWS y FOUND_ROWS() están disponibles desde la versión 4.0.0 de MySQL.



suministrado por FreeFind
Valid HTML 4.0! Valid CSS!