MySQLi – Clasificación de resultados

Hemos visto SQL SELECCIONE comando para recuperar datos de la tabla MySQLi. Cuando selecciona filas, el servidor MySQLi puede devolverlas en cualquier orden, a menos que especifique lo contrario especificando cómo ordenar el resultado. Pero ordena el conjunto de resultados agregando una cláusula ORDER BY que nombra la columna o columnas por las que desea ordenar.

Sintaxis

Aquí está la sintaxis SQL general 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 por cualquier campo, siempre que este campo esté especificado en la lista.

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

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

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

Usando la cláusula ORDER BY en la línea de comando

Esto usará una instrucción SELECT de SQL con una cláusula ORDER BY para recuperar datos de la tabel tutorials_inf de MySQLi.

Ejemplo

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

[email protected]# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf ORDER BY id desc;
+----+-------+
| id | name  |
+----+-------+
|  4 | ram   |
|  3 | raghu |
|  2 | johar |
|  1 | sai   |
+----+-------+
4 rows in set (0.00 sec)

mysql>

Asegúrese de que todos los ID estén enumerados en orden descendente.

Usando la cláusula ORDER BY dentro del script PHP

Puede usar una sintaxis similar para la cláusula ORDER BY en una función PHP. mysqli_query ()… Esta función se utiliza para ejecutar un comando SQL y luego otra función PHP. mysqli_fetch_array () se puede utilizar para obtener todos los datos seleccionados.

Ejemplo

Pruebe el siguiente ejemplo, que devuelve el resultado en orden descendente del autor del tutorial.

<?php
   $dbhost="localhost:3306";
   $dbuser="root";
   $dbpass="";
   $dbname="TUTORIALS";
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: '. mysqli_error());
   }
   echo 'Connected successfully</br>';
   $sql="SELECT * from tutorials_inf ORDER BY id desc";
   
   if($result = mysqli_query($conn, $sql)){
      if(mysqli_num_rows($result) > 0){
         echo "<table>";
         echo "<tr>";
         echo "<th>id</th>";
         echo "<th>name</th>";
         echo "</tr>";
         
         while($row = mysqli_fetch_array($result)){
            echo "<tr>";
            echo "<td>". $row['id']. "</td>";
            echo "<td>". $row['name']. "</td>";
            echo "</tr>";
         }
         echo "</table>";
         mysqli_free_result($result);
      } else {
         echo "No records matching your query were found.";
      }
   } else {
      echo "ERROR: Could not able to execute $sql. ". mysqli_error($conn);
   }
   mysqli_close($conn);
?>

La salida de muestra debería ser así:

Connected successfully
id	name
4	ram
3	raghu
2	johar
1	sai

🚫