MySQL - Sắp xếp kết quả
Chúng tôi đã thấy SQL SELECTlệnh để tìm nạp dữ liệu từ một bảng MySQL. Khi bạn chọn các hàng, máy chủ MySQL có thể trả lại chúng theo bất kỳ thứ tự nào, trừ khi bạn hướng dẫn khác bằng cách nói cách sắp xếp kết quả. Tuy nhiên, bạn sắp xếp tập hợp kết quả bằng cách thêmORDER BY mệnh đề đặt tên cho cột hoặc các cột mà bạn muốn sắp xếp.
Cú pháp
Khối mã sau là cú pháp SQL chung của lệnh SELECT cùng với mệnh đề ORDER BY để sắp xếp dữ liệu từ bảng MySQL.
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
Bạn có thể sắp xếp kết quả trả về trên bất kỳ trường nào, nếu trường đó đang được liệt kê.
Bạn có thể sắp xếp kết quả trên nhiều trường.
Bạn có thể sử dụng từ khóa ASC hoặc DESC để nhận kết quả theo thứ tự tăng dần hoặc giảm dần. Theo mặc định, đó là thứ tự tăng dần.
Bạn có thể sử dụng mệnh đề WHERE ... LIKE theo cách thông thường để đặt điều kiện.
Sử dụng mệnh đề ORDER BY trong Command Prompt
Điều này sẽ sử dụng lệnh SQL SELECT với ORDER BY mệnh đề tìm nạp dữ liệu từ bảng MySQL - tutorials_tbl.
Thí dụ
Hãy thử ví dụ sau, nó trả về kết quả theo thứ tự tăng dầ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>
Xác minh tất cả các tên tác giả được liệt kê theo thứ tự tăng dần.
Sử dụng mệnh đề ORDER BY bên trong PHP Script
Bạn có thể sử dụng một cú pháp tương tự của mệnh đề ORDER BY vào hàm PHP - mysql_query(). Hàm này được sử dụng để thực thi lệnh SQL và sau đó là một hàm PHP khácmysql_fetch_array() có thể được sử dụng để tìm nạp tất cả dữ liệu đã chọn.
Thí dụ
Hãy thử ví dụ sau, nó trả về kết quả theo thứ tự giảm dần của các tác giả hướng dẫn.
<?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);
?>