Python MySQL - Bestellen nach
Beim Abrufen von Daten mithilfe der SELECT-Abfrage können Sie die Ergebnisse mithilfe der OrderBy-Klausel in der gewünschten Reihenfolge (aufsteigend oder absteigend) sortieren. Standardmäßig sortiert diese Klausel die Ergebnisse in aufsteigender Reihenfolge. Wenn Sie sie in absteigender Reihenfolge anordnen müssen, müssen Sie "DESC" explizit verwenden.
Syntax
Es folgt die Syntax SELECT Spaltenliste
FROM table_name
[WHERE condition]
[ORDER BY column1, column2,.. columnN] [ASC | DESC]; of the ORDER BY clause:
Beispiel
Angenommen, wir haben in MySQL eine Tabelle mit dem Namen EMPLOYEES als - erstellt
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT);
Query OK, 0 rows affected (0.36 sec)
Und wenn wir 4 Datensätze mit INSERT-Anweisungen als - eingefügt haben.
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
Die folgende Anweisung ruft den Inhalt der EMPLOYEE-Tabelle in aufsteigender Reihenfolge des Alters ab.
mysql> SELECT * FROM EMPLOYEE ORDER BY AGE;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 19| M | 2000 |
| Raj | Kandukuri | 20| M | 7000 |
| Ramya | Ramapriya | 25| F | 5000 |
| Mac | Mohan | 26| M | 2000 |
+------------+-----------+------+------+--------+
4 rows in set (0.04 sec)
Sie können Daten auch in absteigender Reihenfolge mit DESC abrufen als -
mysql> SELECT * FROM EMPLOYEE ORDER BY FIRST_NAME, INCOME DESC;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 19| M | 2000 |
| Mac | Mohan | 26| M | 2000 |
| Raj | Kandukuri | 20| M | 7000 |
| Ramya | Ramapriya | 25| F | 5000 |
+------------+-----------+------+------+--------+
4 rows in set (0.00 sec)
ORDER BY-Klausel mit Python
Rufen Sie das auf, um den Inhalt einer Tabelle in einer bestimmten Reihenfolge abzurufen execute() Methode für das Cursorobjekt und übergeben Sie die SELECT-Anweisung zusammen mit der ORDER BY-Klausel als Parameter.
Beispiel
Im folgenden Beispiel erstellen wir eine Tabelle mit Name und Mitarbeiter, füllen sie aus und rufen ihre Datensätze mithilfe der ORDER BY-Klausel in der (aufsteigenden) Reihenfolge ihres Alters wieder ab.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
sql = '''CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute(sql)
#Populating the table
insert_stmt = "INSERT INTO EMPLOYEE
(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)"
data = [
('Krishna', 'Sharma', 26, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 29, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000)
]
cursor.executemany(insert_stmt, data)
conn.commit()
#Retrieving specific records using the ORDER BY clause
cursor.execute("SELECT * from EMPLOYEE ORDER BY AGE")
print(cursor.fetchall())
#Closing the connection
conn.close()
Ausgabe
[
('Raj', 'Kandukuri', 20, 'M', 7000.0),
('Krishna', 'Sharma', 26, 'M', 2000.0),
('Mac', 'Mohan', 26, 'M', 2000.0),
('Ramya', 'Ramapriya', 29, 'F', 5000.0)
]
Auf die gleiche Weise können Sie mit der ORDER BY-Klausel Daten aus einer Tabelle in absteigender Reihenfolge abrufen.
Beispiel
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving specific records using the ORDERBY clause
cursor.execute("SELECT * from EMPLOYEE ORDER BY INCOME DESC")
print(cursor.fetchall())
#Closing the connection
conn.close()
Ausgabe
[
('Raj', 'Kandukuri', 20, 'M', 7000.0),
('Ramya', 'Ramapriya', 29, 'F', 5000.0),
('Krishna', 'Sharma', 26, 'M', 2000.0),
('Mac', 'Mohan', 26, 'M', 2000.0)
]