English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sappiamo che possiamo leggere i dati da una tabella MySQL utilizzando la dichiarazione SQL SELECT.
Se dobbiamo ordinare i dati letti, possiamo utilizzare la funzione ORDER BY di MySQL ORDER BY Clausola per stabilire quale campo e in quale modo desideri ordinare, e restituire i risultati della ricerca.
Di seguito è riportato un esempio di dichiarazione SQL SELECT che utilizza la clausola ORDER BY per ordinare i dati della query e restituirli:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... ORDER BY field1 [ASC [DESC][default ASC]], [field2...] [ASC [DESC][default ASC]]
Puoi utilizzare qualsiasi campo come condizione di ordinamento per restituire i risultati della query ordinati.
Puoi impostare più campi per l'ordinamento.
Puoi utilizzare i termini chiave ASC o DESC per impostare se i risultati della query sono ordinati in ordine crescente o decrescente. Di default, è in ordine crescente.
Puoi aggiungere la clausola WHERE...LIKE per impostare le condizioni.
Di seguito utilizzeremo la clausola ORDER BY nella dichiarazione SQL SELECT per leggere i dati dalla tabella w3codebox_tbl del MySQL:
Prova i seguenti esempi, i risultati saranno ordinati in ordine crescente e decrescente.
mysql> use w3codebox; Database changed MariaDB [w3codebox]> SELECT * from w3codebox_tbl ORDER BY submission_date ASC; +----------+-------------+--------------+-----------------+ | w3codebox_id | w3codebox_title | w3codebox_author | submission_date | +----------+-------------+--------------+-----------------+ | 1 | Impara PHP | oldtoolbag.com | 2018-04-14 | | 2 | 学习 MySQL | oldtoolbag.com | 2018-04-14 | | 3 | JAVA 教程 | oldtoolbag.com | 2018-04-14 | | 4 | Impara Python | oldtoolbag.com | 2019-06-08 | +----------+-------------+--------------+-----------------+ 4 righe nel set (0.00 sec) MariaDB [w3codebox]> SELECT * from w3codebox_tbl ORDER BY submission_date DESC; +----------+-------------+--------------+-----------------+ | w3codebox_id | w3codebox_title | w3codebox_author | submission_date | +----------+-------------+--------------+-----------------+ | 4 | Impara Python | oldtoolbag.com | 2019-06-08 | | 1 | Impara PHP | oldtoolbag.com | 2018-04-14 | | 2 | 学习 MySQL | oldtoolbag.com | 2018-04-14 | | 3 | JAVA 教程 | oldtoolbag.com | 2018-04-14 | +----------+-------------+--------------+-----------------+ 4 rows in set (0.02 sec)
读取 w3codebox_tbl 表中所有数据并按 submission_date 字段的升序排列。
你可以使用PHP函数的 mysqli_query() 及相同的 SQL SELECT 带上 ORDER BY 子句的命令来获取数据。
该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来输出所有查询的数据。
试以下示例,查询后的数据按 submission_date 字段的降序排列后返回。
<?php $dbhost = 'localhost'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 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('Impossibile leggere i dati: ' . mysqli_error($conn)); } echo '<h2>Test di ORDER BY su MySQL<h2>'; echo '<table border="1"><tr><td>Identificativo tutorial</td><td>Titolo</td><td>Autore</td><td>Data di presentazione</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); ?>
Il risultato di output è illustrato nella figura seguente: