MySQL 排序结果
-
排序
我们已经看到了SQL SELECT命令从MySQL表中获取数据。当您选择行时,MySQL服务器可以自由以任何顺序返回它们,除非您通过说出如何对结果进行排序的其他方式进行指示。但是,可以通过添加一个ORDER BY子句对结果集进行排序,该子句命名要排序的一个或多个列。以下代码块是SELECT命令的通用SQL语法,以及用于对MySQL表中的数据进行排序的ORDER BY子句。SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
- 如果列出了该字段,则可以在任何字段上对返回的结果进行排序。
- 您可以在多个字段上对结果进行排序。
- 您可以使用关键字ASC或DESC来获得结果的升序或降序。默认情况下,这是升序(ASC)。
- 您可以按常规方式使用WHERE ... LIKE子句来放置条件。
-
在命令提示符处使用ORDER BY子句
这将使用带有SELECT ORDER BY子句的SQL SELECT命令从MySQL表 – tutorials_tbl中获取数据。例 尝试以下示例,该示例以升序返回结果。root@host# mysql -u root -p password; Enter password:******* mysql> use mydb; Database changed mysql> SELECT * from tutorials_tbl ORDER BY tutorial_author ASC +-------------+----------------+-----------------+-----------------+ | tutorial_id | tutorial_title | tutorial_author | submission_date | +-------------+----------------+-----------------+-----------------+ | 2 | Learn MySQL | Abdul S | 2007-05-24 | | 1 | Learn PHP | John Poul | 2007-05-24 | | 3 | JAVA Tutorial | Sanjay | 2007-05-06 | +-------------+----------------+-----------------+-----------------+ 3 rows in set (0.42 sec) mysql>
-
在PHP脚本中使用ORDER BY子句
您可以在PHP函数mysqli_query()中使用类似ORDER BY子句的语法。该函数用于执行SQL命令,以后可以使用另一个PHP函数mysqli_fetch_array()来获取所有选定数据。尝试以下示例,该示例按教程作者的降序返回结果。
尝试一下<?php $dbhost = 'localhost'; $dbuser = 'test'; $dbpass = '123456'; $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysqli_error($conn)); } $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl ORDER BY tutorial_author DESC'; mysqli_select_db($conn,'mydb'); $retval = mysqli_query( $conn,$sql ); if(! $retval ) { die('Could not get data: ' . mysqli_error($conn)); } while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { echo "Tutorial ID :{$row['tutorial_id']} <br> ". "Title: {$row['tutorial_title']} <br> ". "Author: {$row['tutorial_author']} <br> ". "Submission Date : {$row['submission_date']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysqli_close($conn); ?>