Seleccione la primera fila de la tabla MySQL
- Seleccione la primera fila de la tabla MySQL
- 
          
            Use la cláusula LIMITpara recuperar la primera fila de la tabla MySQL donde una columna tiene varias instancias
- 
          
            Utilice IN(),MIN()yGROUP BYpara obtener la primera fila de cada grupo de la tabla MySQL
- 
          
            Use LIMITyORDER BYpara seleccionar la primera fila de toda la tabla de MySQL
 
Hoy exploraremos tres escenarios y sus soluciones donde queremos seleccionar la primera fila de la tabla MySQL.
En el primer escenario, aprenderemos a obtener la primera fila de la tabla MySQL donde una columna en particular tiene múltiples instancias. Por ejemplo, seleccione la primera fila de la tabla gerente donde first_name es Mehvish.
En el segundo escenario, seleccionaremos la primera fila de cada grupo de una tabla. Aquí, también veremos cómo recuperar datos con respecto a los grupos. En el tercer escenario, veremos cómo obtener la primera fila de toda la tabla de MySQL.
Seleccione la primera fila de la tabla MySQL
Antes de profundizar en los ejemplos de código, creemos una tabla manager_id con manager_id, first_name y last_name como campos donde manager_id es una clave principal.
Las consultas para crear y completar esta tabla se proporcionan a continuación. También puede utilizar estos.
Código de ejemplo:
CREATE TABLE manager (
    manager_id INT NOT NULL AUTO_INCREMENT,
    first_name VARCHAR(150) NOT NULL,
    last_name VARCHAR(150) NOT NULL,
    PRIMARY KEY(manager_id)
);
INSERT INTO manager (first_name, last_name)
VALUES
('Mehvish', 'Ashiq'),
('Saira', 'Mushtaq'),
('Thomas', 'Christopher'),
('Thomas', 'Gabrial'),
('Tahir', 'Raza'),
('Saira', 'Johny'),
('Saira', 'Daniel');
SELECT * FROM manager;
Producción :
+------------+------------+-------------+
| manager_id | first_name | last_name   |
+------------+------------+-------------+
|          1 | Mehvish    | Ashiq       |
|          2 | Saira      | Mushtaq     |
|          3 | Thomas     | Christopher |
|          4 | Thomas     | Gabrial     |
|          5 | Tahir      | Raza        |
|          6 | Saira      | Johny       |
|          7 | Saira      | Daniel      |
+------------+------------+-------------+
7 rows in set (0.00 sec)
Use la cláusula LIMIT para recuperar la primera fila de la tabla MySQL donde una columna tiene varias instancias
Tenemos una instancia de Mehvish, una instancia de Tahir, dos instancias de Thomas y tres instancias de Saira en la columna first_name de la tabla manager. Puede usar la instrucción SELECT para ver los datos de la tabla actual.
Ejecute la siguiente instrucción para tomar la primera fila de la tabla gerente donde first_name es Saira.
Consulta:
SELECT * FROM manager WHERE first_name = 'Saira' LIMIT 1;
Producción :
+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          2 | Saira      | Mushtaq   |
+------------+------------+-----------+
1 row in set (0.00 sec)
Supongamos que queremos tomar el tercer registro donde el first_name es Saira. Usamos la cláusula LIMIT con dos argumentos (explicado más adelante en este tutorial).
Consulta:
SELECT * FROM manager WHERE first_name = 'Saira' LIMIT 2,1;
Producción :
+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          7 | Saira      | Daniel    |
+------------+------------+-----------+
1 row in set (0.00 sec)
Supongamos que queremos obtener los primeros dos registros donde el first_name es Saira. Podemos hacer eso de la siguiente manera.
Consulta:
SELECT * FROM manager WHERE first_name = 'Saira' LIMIT 2;
Producción :
+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          2 | Saira      | Mushtaq   |
|          6 | Saira      | Johny     |
+------------+------------+-----------+
2 rows in set (0.00 sec)
También podemos obtener los dos últimos registros donde el nombre first_name es Saira. Usamos la cláusula ORDER BY con la cláusula LIMIT.
Consulta:
SELECT * FROM manager WHERE first_name = 'Saira' ORDER BY manager_id DESC LIMIT 2;
Producción :
+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          7 | Saira      | Daniel    |
|          6 | Saira      | Johny     |
+------------+------------+-----------+
2 rows in set (0.00 sec)
Aquí, es crucial comprender el papel de las cláusulas LIMIT y ORDER BY. La cláusula LIMIT se usa con una declaración SELECT para obtener un cierto número de registros de una tabla.
La cláusula LIMIT toma uno o dos argumentos que deben ser un número entero positivo o cero. La siguiente es la sintaxis de la cláusula LIMIT con uno y dos argumentos.
Sintaxis:
# Syntax with one argument
SELECT
    your_select_list
FROM
    you_table_name
WHERE
    your_condition
LIMIT row_count;
# Syntax with two arguments
SELECT
    your_select_list
FROM
    your_table_name
WHERE
    your_condition
LIMIT [offset,] row_count;
El row_count muestra el número máximo de registros a devolver, mientras que el offset se utiliza cuando queremos recuperar un rango específico de registros, por ejemplo, desde el offset 2 hasta el row_count 4. Recuerde que el offset de la primera fila no es 1 sino 0.
Consulte la siguiente ilustración.

Recuerde, el LIMIT row_count y el LIMIT 0, row_count son equivalentes entre sí. Según los requisitos del proyecto, la cláusula ORDER BY ordena los datos de la tabla en orden ascendente o descendente.
Utilice IN(), MIN() y GROUP BY para obtener la primera fila de cada grupo de la tabla MySQL
Este segundo escenario seleccionará y tomará la primera fila de cada grupo de la tabla usando las funciones IN() y MIN() y la cláusula GROUP BY.
Código de ejemplo:
SELECT * FROM manager
WHERE
manager_id IN (
    SELECT min(manager_id)
    FROM manager
    GROUP BY first_name
);
Producción :
+------------+------------+-------------+
| manager_id | first_name | last_name   |
+------------+------------+-------------+
|          1 | Mehvish    | Ashiq       |
|          2 | Saira      | Mushtaq     |
|          3 | Thomas     | Christopher |
|          5 | Tahir      | Raza        |
+------------+------------+-------------+
4 rows in set (0.08 sec)
Este ejemplo utiliza las diferentes funciones y cláusulas para obtener los resultados deseados.
- IN()- Esta función nos permite especificar múltiples valores en la cláusula- WHERE. Devuelve- 1si una expresión es igual a cualquiera de los valores de la lista- IN().
- GROUP BY- Agrupa los registros que contienen los mismos valores, principalmente utilizados con funciones agregadas, por ejemplo,- MIN(),- MAX(),- COUNT(), etc.
- MIN()- Devuelve el valor más bajo de un atributo (columna) en la consulta.
- Subconsulta: está anidada dentro de otra consulta, por ejemplo, SELECCIONAR,ACTUALIZAR,ELIMINAR, etc. También podemos anidar una subconsulta en otra subconsulta (necesitamos entender el orden de ejecución de varios cláusulas).
Use LIMIT y ORDER BY para seleccionar la primera fila de toda la tabla de MySQL
Seleccione la primera fila de toda la tabla independientemente del orden y la condición utilizando la cláusula LIMIT.
Consulta:
SELECT * from manager LIMIT 1;
Producción :
+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          1 | Mehvish    | Ashiq     |
+------------+------------+-----------+
1 row in set (0.00 sec)
Utilice ORDENAR POR con LÍMITE para obtener la primera fila de los datos ordenados (en orden descendente).
Consulta:
SELECT * from manager ORDER BY first_name DESC LIMIT 1;
Producción :
+------------+------------+-------------+
| manager_id | first_name | last_name   |
+------------+------------+-------------+
|          3 | Thomas     | Christopher |
+------------+------------+-------------+
1 row in set (0.00 sec)
