MySQL - Clasificación de resultados

Hemos visto el SQL SELECTcomando para obtener datos de una tabla MySQL. Cuando selecciona filas, el servidor MySQL es libre de devolverlas en cualquier orden, a menos que le indique lo contrario diciendo cómo ordenar el resultado. Pero, ordena un conjunto de resultados agregando unORDER BY cláusula que nombra la columna o columnas que desea ordenar.

Sintaxis

El siguiente bloque de código es una sintaxis SQL genérica del comando SELECT junto con la cláusula ORDER BY para ordenar los datos de una tabla MySQL.

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • Puede ordenar el resultado devuelto en cualquier campo, si ese campo está en la lista.

  • Puede ordenar el resultado en más de un campo.

  • Puede utilizar la palabra clave ASC o DESC para obtener un resultado en orden ascendente o descendente. De forma predeterminada, es el orden ascendente.

  • Puede utilizar la cláusula WHERE ... LIKE de la forma habitual para poner una condición.

Usando la cláusula ORDER BY en el símbolo del sistema

Esto usará el comando SQL SELECT con el ORDER BY cláusula para obtener datos de la tabla MySQL - tutorials_tbl.

Ejemplo

Pruebe el siguiente ejemplo, que devuelve el resultado en orden ascendente.

[email protected]# 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>

Verifique todos los nombres de los autores que se enumeran en orden ascendente.

Usando la cláusula ORDER BY dentro de un script PHP

Puede usar una sintaxis similar de la cláusula ORDER BY en la función PHP - mysql_query(). Esta función se usa para ejecutar el comando SQL y luego otra función PHPmysql_fetch_array() se puede utilizar para recuperar todos los datos seleccionados.

Ejemplo

Pruebe el siguiente ejemplo, que devuelve el resultado en orden descendente de los autores del tutorial.

<?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);
?>