Справочник на статиите
Многополено сортиране в MySQL ? MySQL ORDER BY низходящ/възходящ ред заявка/функция
MySQL сортиране
Знаем да използваме SQL оператор SELECT за четене на данни от MySQL таблица.
Ако трябва да сортираме прочетените данни, можем да използваме клаузата ORDER BY на MySQL , за да укажем кое поле и метод за сортиране искаме да използваме и след това да върнем резултатите от търсенето.
граматика
Следното е SQL оператор SELECT, който използва клаузата ORDER BY за сортиране на данните от заявката, преди да върне данните:
SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
- Можете да използвате всяко поле като условие за сортиране, за да върнете сортирани резултати от заявка.
- Можете да зададете няколко полета за сортиране.
- Можете да използвате ключовите думи ASC или DESC, за да настроите резултатите от заявката да бъдат сортирани във възходящ или низходящ ред.По подразбиране е във възходящ ред.
- Можете да добавите клаузи WHERE...LIKE, за да зададете условия.
Използване на клаузата ORDER BY в командния ред
Следното ще използва клаузата ORDER BY в оператора SQL SELECT, за да прочете данните в MySQL таблицата с данни chenweiliang_tbl:
Инстанция
Опитайте примерите по-долу и резултатите ще бъдат сортирани във възходящ и низходящ ред.
SQL сортиране
mysql> use chenweiliang; Database changed mysql> SELECT * from chenweiliang_tbl ORDER BY submission_date ASC; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | 学习 Java | chenweiliang.com | 2015-05-01 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | | 1 | 学习 PHP | 陈沩亮博客 | 2017-04-12 | | 2 | 学习 MySQL | 陈沩亮博客 | 2017-04-12 | +-----------+---------------+---------------+-----------------+ 4 rows in set (0.01 sec) mysql> SELECT * from chenweiliang_tbl ORDER BY submission_date DESC; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 1 | 学习 PHP | 陈沩亮博客 | 2017-04-12 | | 2 | 学习 MySQL | 陈沩亮博客 | 2017-04-12 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | | 3 | 学习 Java | chenweiliang.com | 2015-05-01 | +-----------+---------------+---------------+-----------------+ 4 rows in set (0.01 sec)
Прочетете всички данни в таблицата chenweiliang_tbl и сортирайте във възходящ ред по полето submission_date.
Използване на клаузата ORDER BY в PHP скрипт
Можете да използвате PHP функцията mysqli_query() и същата SQL команда SELECT с клауза ORDER BY, за да получите данните.
Тази функция се използва за изпълнение на SQL команди и след това извеждане на всички заявени данни чрез PHP функцията mysqli_fetch_array().
Инстанция
Опитайте следния пример, заявените данни се връщат в низходящ ред на полето submission_date.
MySQL ORDER BY тест:
<?
php
$dbhost = 'localhost:3306'; // 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 chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl
ORDER BY submission_date ASC';
mysqli_select_db( $conn, 'chenweiliang' );
$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, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Надяваме се, че статията „MySQL Multi-Field Condition Sorting? MySQL ORDER BY Descending/Ascending Order Query Statement/Function“, споделена в блога на Чен Вейлианг ( https://www.chenweiliang.com/ ), ще ви бъде полезна.
Чувствайте се свободни да споделите линка към тази статия: https://www.chenweiliang.com/cwl-476.html
