Wählen Sie die erste Zeile aus der MySQL-Tabelle aus
- Wählen Sie die erste Zeile aus der MySQL-Tabelle aus
-
Verwenden Sie die
LIMIT
-Klausel, um die erste Zeile aus der MySQL-Tabelle abzurufen, wenn eine Spalte mehrere Instanzen hat -
Verwenden Sie
IN()
,MIN()
undGROUP BY
, um die erste Zeile in jeder Gruppe aus der MySQL-Tabelle zu holen -
Verwenden Sie
LIMIT
undORDER BY
, um die erste Zeile aus der gesamten MySQL-Tabelle auszuwählen
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.
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.
IN()
- Mit dieser Funktion können wir mehrere Werte in derWHERE
-Klausel angeben. Es gibt1
zurück, wenn ein Ausdruck gleich einem derIN()
-Listenwerte ist.GROUP BY
– Es gruppiert die Datensätze, die die gleichen Werte enthalten, die hauptsächlich mit Aggregatfunktionen verwendet werden, zum BeispielMIN()
,MAX()
,COUNT()
usw.MIN()
- Gibt den niedrigsten Wert eines Attributs (Spalte) in der Abfrage zurück.- 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)
Verwandter Artikel - MySQL Table
- Alle Zeilen einer MySQL-Tabelle durchlaufen
- Kopieren Sie Tabellenstrukturen, ohne Daten in MySQL zu kopieren
- Rufen Sie die ID des zuletzt eingefügten Datensatzes in MySQL ab
- Sichern Sie eine einzelne Tabelle mit Mysqldump
- Tabellen- und Datenbankstruktur in MySQL anzeigen
- Unterschied zwischen zwei Tabellen in MySQL