PHP中ORDER BY子句的详细用法教程
我们已经看到SQLSELECT命令来获取数据从MySQL表。当选择行,MySQL服务器是自由返回,除非指示说如何排序结果否则它会自由返回。指定需要结果集增加一个ORDERBY子句要作为排序依据的列或列名进行排序。
语法:
SELECTfield1,field2,...fieldNtable_name1,table_name2... ORDERBYfield1,[field2...][ASC[DESC]]
这里是通用的SQL的SELECT命令的语法,ORDERBY子句从MySQL表中的数据进行排序:
- 您可以根据返回的结果的任何字段,提交将被列出。
- 您可以对多个字段进行排序结果。
- 您可以使用关键字ASC或DESC,升序或降序排列得到的结果。默认情况下它的升序排列。
- 您可以使用WHERE...LIKE子句中通常的方式添加条件。
在命令提示符下使用ORDERBY子句:
这将使用SQLSELECT命令来从MySQL表tutorials_tbl表中获取数据ORDERBY子句
实例:
试试下面的示例升序返回结果。
root@host#mysql-uroot-ppassword; Enterpassword:******* mysql>useTUTORIALS; Databasechanged mysql>SELECT*fromtutorials_tblORDERBYtutorial_authorASC +-------------+----------------+-----------------+-----------------+ |tutorial_id|tutorial_title|tutorial_author|submission_date| +-------------+----------------+-----------------+-----------------+ |2|LearnMySQL|AbdulS|2007-05-24| |1|LearnPHP|JohnPoul|2007-05-24| |3|JAVATutorial|Sanjay|2007-05-06| +-------------+----------------+-----------------+-----------------+ 3rowsinset(0.42sec) mysql>
所有作者的名字列按升序排列。
PHP脚本使用ORDERBY子句:
可以使用类似的语法的ORDERBY子句到PHP函数mysql_query()。这个函数是用来执行SQL命令后,另一个PHP函数mysql_fetch_array()可以用来获取所有选定的数据。
例子:
试试下面的示例教程作者降序返回结果。
<?php $dbhost='localhost:3036'; $dbuser='root'; $dbpass='rootpassword'; $conn=mysql_connect($dbhost,$dbuser,$dbpass); if(!$conn) { die('Couldnotconnect:'.mysql_error()); } $sql='SELECTtutorial_id,tutorial_title, tutorial_author,submission_date FROMtutorials_tbl ORDERBYtutorial_authorDESC'; mysql_select_db('TUTORIALS'); $retval=mysql_query($sql,$conn); if(!$retval) { die('Couldnotgetdata:'.mysql_error()); } while($row=mysql_fetch_array($retval,MYSQL_ASSOC)) { echo"TutorialID:{$row['tutorial_id']}<br>". "Title:{$row['tutorial_title']}<br>". "Author:{$row['tutorial_author']}<br>". "SubmissionDate:{$row['submission_date']}<br>". "--------------------------------<br>"; } echo"Fetcheddatasuccessfully\n"; mysql_close($conn); ?>