MySQL 排序


MySQL 排序

我們知道從 MySQL 表使用 SQL SELECT 語句來讀取資料。

如果我們需要對讀取的資料進行排序,我們就可以使用 MySQL 的 ORDER BY 子句來設定你想按哪個欄位哪種方式來排序,再傳回搜尋結果。

語法

以下是SQL SELECT 語句使用ORDER BY 子句將查詢資料排序後再傳回資料:

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • #你可以使用任何欄位來作為排序的條件,從而傳回排序後的查詢結果。

  • 你可以設定多個欄位來排序。

  • 你可以使用 ASC 或 DESC 關鍵字來設定查詢結果是按升序或降序排列。 預設情況下,它是按升序排列。

  • 你可以加入 WHERE...LIKE 子句來設定條件。

在命令提示字元中使用ORDER BY 子句

以下將在SQL SELECT 語句中使用ORDER BY 子句來讀取MySQL 資料表user中的資料:

實例

嘗試下列實例,結果將依升序及降序排列。

mysql> use demo;

Database changed

#mysql> SELECT * from user ORDER BY submission_date ASC; 

#+------- ----+---------------+---------------+------------- ----+

 |user_id | user_title  | user_author | submission_date | 

+-----------+----------- ----+---------------+-----------------+

 | 3         | 學習Python | PHP中文網 | 2016-03-06      | 

| 1         | 學習PHP    | PHP中文網 | 2017-04-12  中文網 | 2017 -04-12      | 

#+-----------+---------------+---------- -----+-----------------+

3 rows in set (0.01 sec)


 mysql> SELECT * from user ORDER BY submission_date DESC;

 +-----------+---------------+- --------------+-----------------+

 | user_id | user_title  | user_author | submission_date |

 +-----------+---------------+---------------+- ------------------+

 | 1         | 學習PHP    | PHP中文網 | 2017-04-12      |

 | 2 學習        |

## | 2 學習      | PHP中文網 | 2017-04-12      |

 |3        | 學習Python | PHP -+---------------+---------------+---------------- -+

3 rows in set (0.01 sec)

讀取user 表中所有資料並依submission_date 欄位的升序排列。

在PHP 腳本中使用ORDER BY 子句

你可以使用PHP函數的mysqli_query() 及相同的SQL SELECT 帶上ORDER BY 子句的命令來獲取數據。

此函數用於執行 SQL 指令,然後透過 PHP 函數 mysqli_fetch_array() 來輸出所有查詢的資料。

實例

嘗試下列實例,查詢後的資料會依 submission_date 欄位的降序排列後傳回。


<?php
header("Content-Type: text/html;charset=utf-8");

$dbhost = 'localhost';  // mysql伺服器主機位址
$dbuser = 'root';            // mysql使用者名稱
$dbpass = 'root';使用者名詞  mysqli_connect($dbhost, $dbuser, $ dbpass);
if(! $conn )
{
    die('連結失敗: ' . mysqli_error($conn));
}
// 設定編碼,以防止亂碼
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT user_id, user_title, 
   ##        ORDER BY  submission_date ASC';
 
mysqli_select_db( $conn, 'demo' );
$retval = mysqli_query( $conn, $ );
sql(!  讀取資料: ' . mysqli_error($conn));
}
echo '<h2>PHP中文網MySQL ORDER BY 測試<h2>';
echo '<table 1"><tr><td>教學 ID</td><td>標題</td><td>作者</td><td>提交日期</td>作者</td><td>提交日期</td>lt</td><td>提交日期</td>< ;/tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
    echo "<tr><td> /td> ".
         "<td>{$row['user_title']} </td> ".
   ; ".
         "<td>{$row['submission_date']} </td> ".
     table>';
mysqli_close($conn);
?>

效果圖:

Image 2.jpg

相關影片教學推薦:進階資料查詢 - select選項

#