MySQL - Tri des résultats

Nous avons vu le SQL SELECTcommande pour récupérer les données d'une table MySQL. Lorsque vous sélectionnez des lignes, le serveur MySQL est libre de les renvoyer dans n'importe quel ordre, sauf indication contraire de votre part en indiquant comment trier le résultat. Mais, vous triez un ensemble de résultats en ajoutant unORDER BY clause qui nomme la ou les colonnes que vous souhaitez trier.

Syntaxe

Le bloc de code suivant est une syntaxe SQL générique de la commande SELECT avec la clause ORDER BY pour trier les données d'une table MySQL.

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • Vous pouvez trier le résultat renvoyé sur n'importe quel champ, si ce champ est répertorié.

  • Vous pouvez trier le résultat sur plusieurs champs.

  • Vous pouvez utiliser le mot-clé ASC ou DESC pour obtenir le résultat par ordre croissant ou décroissant. Par défaut, c'est l'ordre croissant.

  • Vous pouvez utiliser la clause WHERE ... LIKE de la manière habituelle pour placer une condition.

Utilisation de la clause ORDER BY à l'invite de commandes

Cela utilisera la commande SQL SELECT avec le ORDER BY clause pour récupérer les données de la table MySQL - tutorials_tbl.

Exemple

Essayez l'exemple suivant, qui renvoie le résultat dans un ordre croissant.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl ORDER BY tutorial_author ASC
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      2      |  Learn MySQL   |     Abdul S     |    2007-05-24   |   
|      1      |   Learn PHP    |    John Poul    |    2007-05-24   |   
|      3      | JAVA Tutorial  |     Sanjay      |    2007-05-06   |   
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.42 sec)

mysql>

Vérifiez tous les noms d'auteur répertoriés dans l'ordre croissant.

Utilisation de la clause ORDER BY dans un script PHP

Vous pouvez utiliser une syntaxe similaire de la clause ORDER BY dans la fonction PHP - mysql_query(). Cette fonction est utilisée pour exécuter la commande SQL et plus tard une autre fonction PHPmysql_fetch_array() peut être utilisé pour récupérer toutes les données sélectionnées.

Exemple

Essayez l'exemple suivant, qui renvoie le résultat dans l'ordre décroissant des auteurs du didacticiel.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   $sql = 'SELECT tutorial_id, tutorial_title, 
      tutorial_author, submission_date
      FROM tutorials_tbl
      ORDER BY  tutorial_author DESC';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
   } 
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>