Limitar los resultados de una consulta en MySQL

Cuando una consulta devuelve muchas filas, pero solamente desea algunas, añada una cláusula LIMIT. Resulta especialmente útil al combinarla con ORDER BY. MySQL le permite limitar el resultado de una consulta a las primeras n filas del resultado. La siguiente consulta selecciona los cinco presidentes que hayan nacido antes:

mysql> SELECT last_name, first_name, birth FROM presidente
-> ORDER BY birth LIMIT 5;

last_name first_name birth
Washington George 1732-02-22
Adams John 1735-10-30
Jefferson Thomas 1743-04-13
Madison James 1751-03-16
Monroe James 1758-04-28

Si lo ordena a la inversa, por medio de ORDER BY birth DESC, el resultado es el que se describe a continuación:

mysql> SELECT last_name, first_name, birth FROM president
-> ORDER BY birth DESC LIMIT 5;

last_name first_name birth
Clinton William J. 1946-08-19
Bush George W. 1946-07-06
Carter James E. 1924-10-01
Bush George H.W. 1924-06-12
Kennedy John F. 1917-05-29

LIMIT también le permite obtener un grupo de filas de un conjunto de resultados. Para ello, debe especificar dos valores. El primero es el número de filas que ignorar al inicio del conjunto de resultados y, el segundo, el número de filas que devolver. La siguiente consulta es similar a la anterior pero devuelve cinco filas tras ignorar las diez primeras:

mysql> SELECT last_name, first_name, birth FROM president
-> ORDER BY birth DESC LIMIT 10, 5;

last_name first_name birth
Truman Harry S 1884-05-08
Roosevelt Franklin D. 1882-01-30
Hoover Herbert C. 1874-08-10
Coolidge Calvin 1872-07-04
Harding Warren G. 1865-11-02

Para obtener una fila o grupo de filas aleatorio de una tabla, utilice ORDER BY RAND() junto con LIMIT:

mysql> SELECT last_name, first_name FROM president
-> ORDER BY RAND() LIMIT 1;

last_name first_name
Johnson Lyndon B.

mysql> SELECT last_name, first_name FROM president
-> ORDER BY RAND() LIMIT 3;
last_name first_name
Harding Warren G.
Bush George H.W.
Jefferson Thomas

Comparte