MySQLi - การเรียงลำดับผลลัพธ์
เราได้เห็น SQL SELECTคำสั่งเพื่อดึงข้อมูลจากตาราง MySQLi เมื่อคุณเลือกแถวเซิร์ฟเวอร์ MySQLi มีอิสระที่จะส่งคืนตามลำดับใด ๆ เว้นแต่คุณจะสั่งเป็นอย่างอื่นโดยบอกวิธีจัดเรียงผลลัพธ์ แต่คุณจัดเรียงชุดผลลัพธ์โดยการเพิ่มคำสั่ง ORDER BY ที่ตั้งชื่อคอลัมน์หรือคอลัมน์ที่คุณต้องการจัดเรียง
ไวยากรณ์
นี่คือไวยากรณ์ SQL ทั่วไปของคำสั่ง SELECT พร้อมกับคำสั่ง ORDER BY เพื่อจัดเรียงข้อมูลจากตาราง MySQL -
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
คุณสามารถจัดเรียงผลลัพธ์ที่ส่งคืนในฟิลด์ใดก็ได้หากมีการยื่นรายการออก
คุณสามารถจัดเรียงผลลัพธ์ในมากกว่าหนึ่งฟิลด์
คุณสามารถใช้คีย์เวิร์ด ASC หรือ DESC เพื่อให้ได้ผลลัพธ์จากน้อยไปมากหรือมากไปหาน้อย โดยค่าเริ่มต้นจะเรียงลำดับจากน้อยไปมาก
คุณสามารถใช้ WHERE ... LIKE clause ได้ตามปกติเพื่อวางเงื่อนไข
ใช้คำสั่ง ORDER BY ที่ Command Prompt
สิ่งนี้จะใช้คำสั่ง SQL SELECT พร้อมคำสั่ง ORDER BY เพื่อดึงข้อมูลจาก MySQLi table tutorials_inf
ตัวอย่าง
ลองใช้ตัวอย่างต่อไปนี้ซึ่งส่งคืนผลลัพธ์ในลำดับจากมากไปหาน้อย
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_inf ORDER BY id desc;
+----+-------+
| id | name |
+----+-------+
| 4 | ram |
| 3 | raghu |
| 2 | johar |
| 1 | sai |
+----+-------+
4 rows in set (0.00 sec)
mysql>
ตรวจสอบว่า id ทั้งหมดแสดงรายการตามลำดับจากมากไปหาน้อย
ใช้คำสั่ง ORDER BY ภายใน PHP Script
คุณสามารถใช้ไวยากรณ์คำสั่ง ORDER BY ที่คล้ายกันในฟังก์ชัน PHP mysqli_query(). ฟังก์ชันนี้ใช้เพื่อดำเนินการคำสั่ง SQL และฟังก์ชัน PHP อื่นในภายหลังmysqli_fetch_array() สามารถใช้เพื่อดึงข้อมูลที่เลือกทั้งหมด
ตัวอย่าง
ลองใช้ตัวอย่างต่อไปนี้ซึ่งส่งคืนผลลัพธ์ตามลำดับของผู้เขียนบทช่วยสอนจากมากไปหาน้อย
<?php
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '';
$dbname = 'TUTORIALS';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
if(! $conn ) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully</br>';
$sql = 'SELECT * from tutorials_inf ORDER BY id desc';
if($result = mysqli_query($conn, $sql)){
if(mysqli_num_rows($result) > 0){
echo "<table>";
echo "<tr>";
echo "<th>id</th>";
echo "<th>name</th>";
echo "</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_free_result($result);
} else {
echo "No records matching your query were found.";
}
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
}
mysqli_close($conn);
?>
ผลลัพธ์ตัวอย่างควรเป็นดังนี้ -
Connected successfully
id name
4 ram
3 raghu
2 johar
1 sai