MariaDB - Trier par clause

le ORDER BYcomme mentionné dans les discussions précédentes, trie les résultats d'une déclaration. Il spécifie l'ordre des données opérées et inclut l'option de tri par ordre croissant (ASC) ou décroissant (DESC). En cas d'omission de la spécification de commande, l'ordre par défaut est croissant.

Les clauses ORDER BY apparaissent dans une grande variété d'instructions telles que DELETE et UPDATE. Ils apparaissent toujours à la fin d'une instruction, pas dans une sous-requête ou avant une fonction set, car ils opèrent sur la table finale résultante. Vous ne pouvez pas non plus utiliser un entier pour identifier une colonne.

Passez en revue la syntaxe générale de la clause ORDER BY donnée ci-dessous -

SELECT field, field2,... [or column] FROM table_name, table_name2,...
ORDER BY field, field2,... ASC[or DESC]

Utilisez une clause ORDER BY à l'invite de commande ou dans un script PHP.

L'invite de commandes

À l'invite de commande, utilisez simplement une commande standard -

[email protected] host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed

mysql> SELECT * from products_tbl ORDER BY product_manufacturer ASC
+-------------+----------------+----------------------+
| ID_number   | Nomenclature   | product_manufacturer |
+-------------+----------------+----------------------+
| 56789       | SuperBlast 400 | LMN Corp             |
+-------------+----------------+----------------------+
| 67891       | Zoomzoom 5000  | QFT Corp             |
+-------------+----------------+----------------------+
| 12347       | Orbitron 1000  | XYZ Corp             |
+-------------+----------------+----------------------+

Script PHP utilisant la clause Order By

Utilisez le mysql_query() fonction, encore une fois, dans les instructions employant la clause ORDER BY -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date 
      FROM products_tbl ORDER BY product_manufacturer DESC';

   mysql_select_db('PRODUCTS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Product ID :{$row['product_id']} <br> ".
         "Name: {$row['product_name']} <br> ".
         "Manufacturer: {$row['product_manufacturer']} <br> ".
         "Ship Date : {$row['ship_date']} <br> ".
         "--------------------------------<br>";
   }

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

Lors de la récupération des données réussie, vous verrez la sortie suivante -

Product ID: 12347
Nomenclature: Orbitron 1000
Manufacturer: XYZ Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 67891
Nomenclature: Zoomzoom 5000
Manufacturer: QFT Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 56789
Nomenclature: SuperBlast 400
Manufacturer: LMN Corp
Ship Date: 01/04/17
----------------------------------------------
mysql> Fetched data successfully