Wählen Sie die erste Zeile aus der MySQL-Tabelle aus

Mehvish Ashiq 15 Februar 2024
  1. Wählen Sie die erste Zeile aus der MySQL-Tabelle aus
  2. Verwenden Sie die LIMIT-Klausel, um die erste Zeile aus der MySQL-Tabelle abzurufen, wenn eine Spalte mehrere Instanzen hat
  3. Verwenden Sie IN(), MIN() und GROUP BY, um die erste Zeile in jeder Gruppe aus der MySQL-Tabelle zu holen
  4. Verwenden Sie LIMIT und ORDER BY, um die erste Zeile aus der gesamten MySQL-Tabelle auszuwählen
Wählen Sie die erste Zeile aus der MySQL-Tabelle aus

Heute werden wir drei Szenarien und ihre Lösungen untersuchen, in denen wir die erste Zeile aus der MySQL-Tabelle auswählen möchten.

Im ersten Szenario lernen wir, die erste Zeile aus der MySQL-Tabelle abzurufen, in der eine bestimmte Spalte mehrere Instanzen hat. Wählen Sie beispielsweise die erste Zeile aus der Tabelle manager, in der der Vorname Mehvish lautet.

Im zweiten Szenario wählen wir die erste Zeile in jeder Gruppe einer Tabelle aus. Hier werden wir auch sehen, wie Daten in Bezug auf die Gruppen abgerufen werden. Im dritten Szenario werden wir sehen, wie wir die erste Zeile aus der gesamten MySQL-Tabelle abrufen.

Wählen Sie die erste Zeile aus der MySQL-Tabelle aus

Bevor wir in die Codebeispiele eintauchen, erstellen wir eine manager_id-Tabelle mit manager_id, first_name und last_name als Felder, wobei manager_id ein Primärschlüssel ist.

Die Abfragen zum Erstellen und Füllen dieser Tabelle sind unten angegeben. Diese können Sie ebenfalls verwenden.

Beispielcode:

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;

Ausgang:

+------------+------------+-------------+
| 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)

Verwenden Sie die LIMIT-Klausel, um die erste Zeile aus der MySQL-Tabelle abzurufen, wenn eine Spalte mehrere Instanzen hat

Wir haben eine Instanz von Mehvish, eine Instanz von Tahir, zwei Instanzen von Thomas und drei Instanzen von Saira in der Spalte first_name der Tabelle manager. Mit der Anweisung SELECT können Sie sich die aktuellen Tabellendaten ansehen.

Führen Sie die folgende Anweisung aus, um die erste Zeile aus der Tabelle manager zu erhalten, in der first_name Saira ist.

Anfrage:

SELECT * FROM manager WHERE first_name = 'Saira' LIMIT 1;

Ausgang:

+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          2 | Saira      | Mushtaq   |
+------------+------------+-----------+
1 row in set (0.00 sec)

Angenommen, wir möchten den dritten Datensatz abrufen, bei dem der Vorname Saira ist. Wir verwenden die Klausel LIMIT mit zwei Argumenten (wird später in diesem Tutorial erklärt).

Anfrage:

SELECT * FROM manager WHERE first_name = 'Saira' LIMIT 2,1;

Ausgang:

+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          7 | Saira      | Daniel    |
+------------+------------+-----------+
1 row in set (0.00 sec)

Angenommen, wir möchten die ersten beiden Datensätze erhalten, bei denen der first_name Saira ist. Das können wir wie folgt machen.

Anfrage:

SELECT * FROM manager WHERE first_name = 'Saira' LIMIT 2;

Ausgang:

+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          2 | Saira      | Mushtaq   |
|          6 | Saira      | Johny     |
+------------+------------+-----------+
2 rows in set (0.00 sec)

Wir können auch die letzten beiden Datensätze erhalten, bei denen der Name first_name Saira ist. Wir verwenden die ORDER BY-Klausel mit der LIMIT-Klausel.

Anfrage:

SELECT * FROM manager WHERE first_name = 'Saira' ORDER BY manager_id DESC LIMIT 2;

Ausgang:

+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          7 | Saira      | Daniel    |
|          6 | Saira      | Johny     |
+------------+------------+-----------+
2 rows in set (0.00 sec)

Hier ist es entscheidend, die Rolle der Klauseln LIMIT und ORDER BY zu verstehen. Die LIMIT-Klausel wird mit einer SELECT-Anweisung verwendet, um eine bestimmte Anzahl von Datensätzen aus einer Tabelle zu erhalten.

Die LIMIT-Klausel akzeptiert ein oder zwei Argumente, die eine positive Ganzzahl oder Null sein müssen. Das Folgende ist die Syntax der LIMIT-Klausel mit einem und zwei Argumenten.

Syntax:

# 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;

row_count zeigt die maximale Anzahl der zurückzugebenden Datensätze an, während offset verwendet wird, wenn wir einen bestimmten Bereich von Datensätzen abrufen möchten, beispielsweise von offset 2 bis row_count 4. Denken Sie daran, dass offset der ersten Zeile ist nicht 1, sondern 0.

Siehe folgende Abbildung.

Erste Reihe von MySQL auswählen – Argumentargumente begrenzen Illustration

Denken Sie daran, dass LIMIT row_count und LIMIT 0, row_count einander äquivalent sind. Je nach Projektanforderung sortiert die ORDER BY-Klausel die Tabellendaten in absteigender oder aufsteigender Reihenfolge.

Verwenden Sie IN(), MIN() und GROUP BY, um die erste Zeile in jeder Gruppe aus der MySQL-Tabelle zu holen

Dieses zweite Szenario wählt und greift die erste Zeile in jeder Gruppe aus der Tabelle unter Verwendung der Funktionen IN() und MIN() und der Klausel GROUP BY.

Beispielcode:

SELECT * FROM manager
WHERE
manager_id IN (
    SELECT min(manager_id)
    FROM manager
    GROUP BY first_name
);

Ausgang:

+------------+------------+-------------+
| 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)

Dieses Beispiel verwendet die verschiedenen Funktionen und Klauseln, um die gewünschten Ergebnisse zu erhalten.

  1. IN() - Mit dieser Funktion können wir mehrere Werte in der WHERE-Klausel angeben. Es gibt 1 zurück, wenn ein Ausdruck gleich einem der IN()-Listenwerte ist.
  2. GROUP BY – Es gruppiert die Datensätze, die die gleichen Werte enthalten, die hauptsächlich mit Aggregatfunktionen verwendet werden, zum Beispiel MIN(), MAX(), COUNT() usw.
  3. MIN() - Gibt den niedrigsten Wert eines Attributs (Spalte) in der Abfrage zurück.
  4. Unterabfrage – Sie ist in einer anderen Abfrage verschachtelt, zum Beispiel SELECT, UPDATE, DELETE usw. Wir können eine Unterabfrage auch in eine andere Unterabfrage verschachteln (wir müssen die Ausführungsreihenfolge verschiedener Klauseln).

Verwenden Sie LIMIT und ORDER BY, um die erste Zeile aus der gesamten MySQL-Tabelle auszuwählen

Wählen Sie die erste Zeile der gesamten Tabelle unabhängig von Reihenfolge und Bedingung mit der LIMIT-Klausel aus.

Anfrage:

SELECT * from manager LIMIT 1;

Ausgang:

+------------+------------+-----------+
| manager_id | first_name | last_name |
+------------+------------+-----------+
|          1 | Mehvish    | Ashiq     |
+------------+------------+-----------+
1 row in set (0.00 sec)

Verwenden Sie ORDER BY mit LIMIT, um die erste Zeile der sortierten Daten (in absteigender Reihenfolge) zu erhalten.

Anfrage:

SELECT * from manager ORDER BY first_name DESC LIMIT 1;

Ausgang:

+------------+------------+-------------+
| 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

Verwandter Artikel - MySQL Table