English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ordenação MySQL

Sabemos que podemos usar a declaração SQL SELECT de uma tabela MySQL para ler dados.

Se precisarmos ordenar os dados lidos, podemos usar a cláusula ORDER BY do MySQL ORDER BY cláusula para definir qual campo e qual tipo de ordenação você deseja usar para retornar os resultados da busca.

Sintaxe

A seguir, a declaração SQL SELECT usa a cláusula ORDER BY para ordenar os dados da consulta e retorná-los:

SELECT campo1, campo2,...campoN FROM nome_da_tabela1, nome_da_tabela2...
ORDER BY campo1 [ASC [DESC] [Padrão ASC]], [campo2...] [ASC [DESC] [Padrão ASC]]
  • Você pode usar qualquer campo como critério de ordenação para retornar os resultados da consulta ordenados.

  • Você pode definir vários campos para ordenar.

  • Você pode usar os termos ASC ou DESC para definir se o resultado da consulta será ordenado em ordem crescente ou decrescente. Pelo padrão, é ordenado em ordem crescente.

  • Você pode adicionar a cláusula WHERE...LIKE para definir condições.

Usando a cláusula ORDER BY no prompt de comando

A seguir, usaremos a cláusula ORDER BY na declaração SQL SELECT para ler o banco de dados MySQL w3Os dados do codebox_tbl:

Exemplo online

Tente o seguinte exemplo, os resultados serão ordenados em ordem crescente e decrescente.

mysql> use w3codebox;
Banco de dados alterado
MariaDB [w3codebox] > SELECT * from w3codebox_tbl ORDER BY submission_date ASC;
+----------+-------------+--------------+-----------------+
| w3codebox_id | w3codebox_title | w3codebox_author | submission_date |
+----------+-------------+--------------+-----------------+
|        1 | Aprender PHP               | oldtoolbag.com               | 2018-04-14      |
|        2 | Aprender MySQL               | oldtoolbag.com               | 2018-04-14      |
|        3 | Tutorial JAVA               | oldtoolbag.com               | 2018-04-14      |
|        4 | Aprender Python             | oldtoolbag.com               | 2019-06-08      |
+----------+-------------+--------------+-----------------+
4 linhas no conjunto (0,00 sec)
MariaDB [w3codebox] > SELECT * from w3codebox_tbl ORDER BY submission_date DESC;
+----------+-------------+--------------+-----------------+
| w3codebox_id | w3codebox_title | w3codebox_author | submission_date |
+----------+-------------+--------------+-----------------+
|        4 | Aprender Python             | oldtoolbag.com               | 2019-06-08      |
|        1 | Aprender PHP               | oldtoolbag.com               | 2018-04-14      |
|        2 | Aprender MySQL               | oldtoolbag.com               | 2018-04-14      |
|        3 | Tutorial JAVA               | oldtoolbag.com               | 2018-04-14      |
+----------+-------------+--------------+-----------------+
4 linhas no conjunto (0.02 sec)

Ler w3Todos os dados na tabela codebox_tbl e ordenados pelo campo submission_date em ordem crescente.

Uso da cláusula ORDER BY em scripts PHP

Você pode usar a função mysqli_query() do PHP e o comando SELECT com a cláusula ORDER BY para obter dados.

Esta função é usada para executar o comando SQL, e então exibir todos os dados consultados através da função PHP mysqli_fetch_array().

Exemplo online

Tente o seguinte exemplo, a seguir, a ordem decrescente dos dados consultados pelo campo submission_date é retornada.

<?php
$dbhost = 'localhost';  // Endereço do servidor do MySQL
$dbuser = 'root';            // Nome de usuário do MySQL
$dbpass = '123456';          // Nome de usuário e senha do MySQL
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if (!$conn)
{
    die('Falha na conexão: ' . mysqli_error($conn));
}
// Definir a codificação, evitar o erro de código chinês
mysqli_query($conn, "set names utf8');
 
$sql = 'SELECT w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        ORDER BY submission_date ASC';
 
mysqli_select_db($conn, 'w3codebox');
$retval = mysqli_query($conn, $sql);
if(! $retval)
{
    die('Não foi possível ler os dados: ' . mysqli_error($conn));
}
echo '<h2">Base Tutorial Net MySQL ORDER BY teste<h2">
echo '<table border="1><tr><td> ID do tutorial</td><td>título</td><td>autor</td><td>data de submissão</td></tr>';
while($row = mysqli_fetch_array($retval))
{
    echo "<tr><td> {$row['w3codebox_id']}</td> ".
         "<td>{$row['w3codebox_title']} </td> ".
         "<td>{$row['w3codebox_author']} </td> ".
         "<td>{$row['submission_date']} </td> ".
         "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

O resultado de saída é mostrado na figura a seguir: