English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Мы знаем, как использовать SQL SELECT для чтения данных из таблицы MySQL.
Если нам нужно сортировать читаемые данные, мы можем использовать MySQL ORDER BY Предложение для установки поля и способа сортировки, по которому вы хотите упорядочить результаты поиска, и затем вернуть их.
Ниже приведен пример SQL SELECT с использованием оператора ORDER BY для сортировки данных и их последующего возврата:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... ORDER BY field1 [ASC [DESC][по умолчанию ASC]], [field2...] [ASC [DESC][по умолчанию ASC]]
Вы можете использовать любое поле в качестве условия сортировки, чтобы вернуть упорядоченные результаты запроса.
Вы можете установить сортировку по нескольким полям.
Вы можете использовать ключевые слова ASC или DESC для установки того, будет ли результат упорядочен по возрастанию или убыванию. По умолчанию это возрастание.
Вы можете добавить предложение WHERE...LIKE для установки условий.
Ниже будет использован оператор ORDER BY в SQL SELECT для чтения данных из таблицы w3codebox_tbl в MySQL:
Попробуйте следующий пример, результат будет упорядочен по возрастанию и убыванию.
mysql> use w3codebox; База данных изменена MariaDB [w3codebox]> SELECT * from w3codebox_tbl ORDER BY дата_подачи ASC; +----------+-------------+--------------+-----------------+ | w3codebox_id | w3codebox_title | w3codebox_author | дата_подачи | +----------+-------------+--------------+-----------------+ | 1 | Учимся PHP | oldtoolbag.com | 14.04.2018 | | 2 | 学习 MySQL | oldtoolbag.com | 2018-04-14 | | 3 | JAVA 教程 | oldtoolbag.com | 2018-04-14 | | 4 | Учимся Python | oldtoolbag.com | 08.06.2019 | +----------+-------------+--------------+-----------------+ 4 строки в системе (0.00 сек) MariaDB [w3codebox]> SELECT * from w3codebox_tbl ORDER BY дата_подачи DESC; +----------+-------------+--------------+-----------------+ | w3codebox_id | w3codebox_title | w3codebox_author | дата_подачи | +----------+-------------+--------------+-----------------+ | 4 | Учимся Python | oldtoolbag.com | 08.06.2019 | | 1 | Учимся PHP | oldtoolbag.com | 14.04.2018 | | 2 | 学习 MySQL | oldtoolbag.com | 2018-04-14 | | 3 | JAVA 教程 | oldtoolbag.com | 2018-04-14 | +----------+-------------+--------------+-----------------+ 4 строк в наборе (0.02 сек)
Чтение всех данных из таблицы w3codebox_tbl и сортировка их по полю submission_date в порядке возрастания.
Вы можете использовать функцию mysqli_query() и соответствующий SQL SELECT с предложением ORDER BY для получения данных.
Эта функция используется для выполнения SQL-запросов и вывода всех данных запроса с помощью функции mysqli_fetch_array() в PHP.
Попробуйте следующий пример, данные после запроса будут возвращены в порядке убывания по полю 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('Не удалось прочитать данные: ' . mysqli_error($conn)); } echo '<h2>Учебный сайт MySQL ORDER BY тест<h2>'; echo '<table border="1"><tr><td>ID учебника</td><td>Заголовок</td><td>Автор</td><td>Дата подачи</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); ?>
Результат вывода показан на рисунке ниже: