鍍金池/ 教程/ 數(shù)據(jù)庫/ MySQL 排序結(jié)果
MySQL 復(fù)制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時(shí)間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時(shí)表
MySQL 介紹
MySQL 數(shù)據(jù)導(dǎo)出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類型
MySQL 插入查詢
MySQL 字符串函數(shù)
MySQL Using Sequences
MySQL 管理
MySQL 數(shù)據(jù)導(dǎo)入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報(bào)
MySQL 選擇數(shù)據(jù)庫
MySQL Where Clause
MySQL 選擇查詢
MySQL Like Clause
MySQL 正則表達(dá)式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢
MySQL 數(shù)據(jù)庫信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語法

MySQL 排序結(jié)果

利用 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)是采用升序排序。

  • 通??墒褂?WHERE...LIKE 子句設(shè)置條件。

在命令行中使用 ORDER BY 子句

我們將使用 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 腳本中使用 ORDER BY 子句

除了在命令行中使用外,我們也可以在 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);
?>