ORDER BY | Trier les données avec Python – MySQL

Lorsque vous utilisez l’instruction SELECT pour interroger les données d’une table, le jeu de résultats n’est pas trié. Cela signifie que les lignes du jeu de résultats peuvent être dans n’importe quel ordre.

Utilisez l’instruction ORDER BY pour trier le résultat par ordre croissant ou décroissant.

Le mot clé ORDER BY trie le résultat par ordre croissant par défaut. Pour trier le résultat par ordre décroissant, utilisez le mot clé DESC.
 
 
L’exemple suivant trie le résultat par ordre croissant de l’age.

# -*- coding: utf-8 -*-
import mysql.connector

#connexion au base de données
db = mysql.connector.connect(
  host = "localhost",
  user = "root",
  password = "",
  database = "my_db"
)

#créer un curseur de base de données pour effectuer des opérations SQL
cur = db.cursor()

sql = "SELECT * FROM person ORDER BY age"
#exécuter le curseur avec la méthode execute() et transmis la requête SQL
cur.execute(sql)

#récupèrer la 1ére ligne de la dernière instruction exécutée.
res = cur.fetchall()

for line in res:
  print(line)

Sortie:

(9, 'Ali', 12)
(3, 'Yohan', 18)
(2, 'Thomas', 21)
(4, 'Thomas', 21)
(6, 'Alex', 25)
(7, 'Emily', 33)
(8, 'Nicolas', 40)
(5, 'Bob', 55)

 
 

ORDER BY DESC

Utilisez le mot clé DESC pour trier le résultat dans un ordre décroissant. L’exemple suivant trie le résultat par ordre décroissant de l’age.

# -*- coding: utf-8 -*-
import mysql.connector

#connexion au base de données
db = mysql.connector.connect(
  host = "localhost",
  user = "root",
  password = "",
  database = "my_db"
)

#créer un curseur de base de données pour effectuer des opérations SQL
cur = db.cursor()

sql = "SELECT * FROM person ORDER BY age DESC"
#exécuter le curseur avec la méthode execute() et transmis la requête SQL
cur.execute(sql)

#récupèrer la 1ére ligne de la dernière instruction exécutée.
res = cur.fetchall()

for line in res:
  print(line)

Sortie:

(5, 'Bob', 55)
(8, 'Nicolas', 40)
(7, 'Emily', 33)
(6, 'Alex', 25)
(2, 'Thomas', 21)
(4, 'Thomas', 21)
(3, 'Yohan', 18)
(9, 'Ali', 12)

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *