Seleccione la primera fila de la tabla MySQL

Mehvish Ashiq 15 febrero 2024
  1. Seleccione la primera fila de la tabla MySQL
  2. Use la cláusula LIMIT para recuperar la primera fila de la tabla MySQL donde una columna tiene varias instancias
  3. Utilice IN(), MIN() y GROUP BY para obtener la primera fila de cada grupo de la tabla MySQL
  4. Use LIMIT y ORDER BY para seleccionar la primera fila de toda la tabla de MySQL
Seleccione la primera fila de la tabla 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.

MySQL Seleccionar primera fila - Ilustración de argumentos de límite

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.

  1. IN() - Esta función nos permite especificar múltiples valores en la cláusula WHERE. Devuelve 1 si una expresión es igual a cualquiera de los valores de la lista IN().
  2. GROUP BY - Agrupa los registros que contienen los mismos valores, principalmente utilizados con funciones agregadas, por ejemplo, MIN(), MAX(), COUNT(), etc.
  3. MIN() - Devuelve el valor más bajo de un atributo (columna) en la consulta.
  4. 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)
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL Table