Vaya al Contenido

PHP Limitar Selección - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Base de Datos MySQL

Limitar la Selección de Datos en MySQL con PHP


Cuando trabajamos con grandes conjuntos de datos en una base de datos MySQL, es útil poder limitar la cantidad de registros devueltos por una consulta SQL.
MySQL nos proporciona la cláusula LIMIT, que es particularmente útil para implementar paginación y mejorar el rendimiento en tablas grandes.

¿Qué es la cláusula LIMIT?


La cláusula LIMIT en MySQL se utiliza para especificar cuántos registros queremos obtener de una tabla. Esto es especialmente útil cuando trabajamos con grandes conjuntos de datos y solo necesitamos una pequeña parte de ellos, o cuando queremos paginar los resultados en una aplicación.

Sintaxis básica


SELECT * FROM nombre_tabla LIMIT cantidad;

Esta consulta devolverá hasta cantidad de registros de la tabla especificada.

Ejemplo básico de LIMIT


Supongamos que tenemos una tabla llamada productos con los siguientes datos:

Ejemplo básico de LIMIT
id nombre precio
1 Laptop 800
2 Tablet 300
3 Smartphone 500
... .... ....

Queremos seleccionar solo los primeros 5 productos de esta tabla.

Ejemplo


<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "tienda";

// Crear conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if ($conexion->connect_error) {
die("Conexión fallida: " . $conexion->connect_error);
}

// SQL con LIMIT
$sql = "SELECT * FROM productos LIMIT 5";
$resultado = $conexion->query($sql);

if ($resultado->num_rows > 0) {
// Mostrar resultados
while($fila = $resultado->fetch_assoc()) {
echo "ID: " . $fila["id"]. " - Nombre: " . $fila["nombre"]. " - Precio: " . $fila["precio"]. "<br>";
}
} else {
echo "0 resultados";
}

// Cerrar conexión
$conexion->close();
?>


Explicación del código


LIMIT 5: Devuelve los primeros 5 registros de la tabla productos.
$resultado->fetch_assoc(): Obtiene los datos en forma de un arreglo asociativo para mostrarlos.

Usando LIMIT con OFFSET


Si queremos devolver un subconjunto de registros que no comienzan desde el principio de la tabla, podemos usar OFFSET para especificar desde qué registro comenzar la selección.

Sintaxis de LIMIT con OFFSET


SELECT * FROM nombre_tabla LIMIT cantidad OFFSET inicio;

cantidad: El número de registros a devolver.
inicio: El registro desde el cual comenzar a devolver los resultados (contado desde 0).

Ejemplo en PHP con OFFSET


Imagina que queremos seleccionar 5 productos, comenzando desde el tercer registro (es decir, omitir los dos primeros).

<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "tienda";

// Crear conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if ($conexion->connect_error) {
die("Conexión fallida: " . $conexion->connect_error);
}

// SQL con LIMIT y OFFSET
$sql = "SELECT * FROM productos LIMIT 5 OFFSET 2";
$resultado = $conexion->query($sql);

if ($resultado->num_rows > 0) {
// Mostrar resultados
while($fila = $resultado->fetch_assoc()) {
echo "ID: " . $fila["id"]. " - Nombre: " . $fila["nombre"]. " - Precio: " . $fila["precio"]. "<br>";
}
} else {
echo "0 resultados";
}

// Cerrar conexión
$conexion->close();
?>


Explicación del código


LIMIT 5 OFFSET 2: Selecciona 5 registros comenzando desde el tercer registro de la tabla (omitiendo los dos primeros).

Usando la Sintaxis Abreviada de LIMIT


MySQL permite utilizar una sintaxis más corta para combinar LIMIT y OFFSET, simplemente separando los valores con una coma. El primer número representa el desplazamiento y el segundo la cantidad de registros a devolver.

Ejemplo de Sintaxis Abreviada


SELECT * FROM nombre_tabla LIMIT inicio, cantidad;

Ejemplo en PHP con Sintaxis Abreviada


Vamos a seleccionar nuevamente 5 productos, comenzando desde el tercer registro, pero usando la sintaxis abreviada.

<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "tienda";

// Crear conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if ($conexion->connect_error)
{ die("Conexión fallida: " . $conexion->connect_error);
}

// SQL con la sintaxis abreviada de LIMIT
$sql = "SELECT * FROM productos LIMIT 2, 5";
$resultado = $conexion->query($sql);

if ($resultado->num_rows > 0) {
// Mostrar resultados
while($fila = $resultado->fetch_assoc()) {
echo "ID: " . $fila["id"]. " - Nombre: " . $fila["nombre"]. " - Precio: " . $fila["precio"]. "<br>";
}
} else {
echo "0 resultados";
}

// Cerrar conexión
$conexion->close();
?>


Explicación del código


LIMIT 2, 5: Selecciona 5 registros comenzando desde el tercer registro. El primer número (2) representa el desplazamiento, y el segundo (5) la cantidad de registros a devolver.

Consideraciones sobre el Rendimiento


El uso de LIMIT y OFFSET es fundamental cuando se trabaja con tablas grandes para mejorar el rendimiento de las consultas. Sin embargo, es importante tener en cuenta que, a medida que aumente el tamaño de la tabla, las consultas con un OFFSET alto pueden volverse más lentas. Esto se debe a que MySQL sigue necesitando escanear los registros hasta el punto especificado por el OFFSET.

Conclusión


La cláusula LIMIT es una herramienta poderosa en MySQL para limitar el número de registros devueltos por una consulta, y su uso junto con OFFSET permite una paginación eficiente. Ya sea que estés trabajando en una pequeña aplicación o en una base de datos masiva, LIMIT puede ayudarte a gestionar los datos de manera más eficiente y optimizar el rendimiento de tu aplicación.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"