Introducción

Estuve haciendo algunas pruebas con MySQL y la función FOUND_ROWS. Tuve algunos inconvenientes porque a veces sale la sorpresa de que FOUND_ROWS de MySQL devuelve 0 o 1 filas, o resultados inesperados. Vamos a ver cómo solucionarlo.

Solución al error de que FOUND_ROWS de MySQL devuelve 0 filas

Reiniciar servicio

Suena como la solución de todos los informáticos pero es la verdad. Hay que reiniciar el demonio de MySQL. Si estamos en Windows vamos a Servicios, buscamos mysql, doble click; en la ventana que se abre hacemos click en Detener, esperamos, y luego hacemos click en Iniciar.

En Linux Ubuntu y tal vez algunos derivados me parece que es con el comando:

sudo service mysql restart

Con eso debería ser suficiente. Si sigue sin solucionarse hay que seguir leyendo…

Índices

No sé por qué pero debe haber una razón muy buena, y es que FOUND_ROWS devolverá 1 en caso de que nuestra tabla tenga un índice y se esté usando dicho índice al hacer la consulta.

Posible alternativa

Como sabemos, FOUND_ROWS cuenta las filas que habría si no limitásemos con LIMIT. Lo que podemos hacer es hacer la consulta por separado implementando un COUNT(*). Tal vez no es lo mejor en cuanto a rendimiento pero es una solución que funciona perfectamente.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto