我们已经看到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来获得升序结果或降序.默认情况下,它是升序.
您可以通过常规方式使用WHERE ... LIKE子句来设置条件.
这将使用带有 ORDER的SQL SELECT命令BY 子句从MySQL表中获取数据 - tutorials_tbl .
试试以下内容例如,以升序返回结果.
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; 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子句的语法 - mysql_query().此函数用于执行SQL命令,稍后可以使用另一个PHP函数 mysql_fetch_array()来获取所有选定的数据.
试试下面的例子,它以教程作者的降序返回结果.
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl ORDER BY tutorial_author DESC'; mysql_select_db('TUTORIALS'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_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"; mysql_close($conn); ?>