利用 SQL 的 SELECT 命令可以獲取 MySQL 表中的數(shù)據(jù)。選擇行時(shí),如果不指定結(jié)果排序方式,MySQL 服務(wù)器所返回結(jié)果是沒有一定的順序的。指定想要排序的列,通過添加 ORDER BY 子句,就可以對(duì)結(jié)果集進(jìn)行排序。
利用 SQL 的 SELECT 命令,配合 ORDER BY 子句,對(duì) MySQL 表中的數(shù)據(jù)進(jìn)行排序:
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
可以對(duì)列出的任何字段的返回結(jié)果進(jìn)行排序。
可以對(duì)多個(gè)字段的返回結(jié)果進(jìn)行排序。
可以使用關(guān)鍵字 ASC 或 DESC ,以升降序?qū)Y(jié)果進(jìn)行排序。默認(rèn)是采用升序排序。
我們將使用 SQL 的 SELECT 命令與 ORDER BY 子句,從 MySQL 表 tutorials_tbl 中獲取數(shù)據(jù)。
下面這個(gè)范例將采用升序的方式對(duì)返回結(jié)果進(jìn)行排序。
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 函數(shù) mysql_query()
中使用 ORDER BY 子句,兩種情況下的語法都是相同的。先用 mysql_query()
執(zhí)行 SQL 命令,然后再用 PHP 函數(shù) mysql_fetch_array()
獲取所有選定的數(shù)據(jù)。
下面這個(gè)范例將按升序排列教程作者名稱(tutorial_author
)。
<?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);
?>