MySQL ORDER BY子句用于对结果表进行升序或降序排序。默认情况下,ORDER BY 子句按升序对结果进行排序,但是可以使用 ASC 关键字指定。要按降序对结果进行排序,请使用 DESC 关键字。
使用 ORDER BY 关键字的语法如下:
SELECT column1, column2, column3, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
与此同时,要连接到 MySQL 服务器,可以使用 mysqli_connect() 函数。建立连接后,可以使用 mysqli_query() 函数对数据库执行查询。
num_rows() 函数可用于检查返回的行数是否超过零。然后,可以使用 fetch_assoc() 函数以关联数组的形式获取结果集。稍后可以使用 free_result() 函数释放与结果关联的内存。
数据排序 - 面向对象风格
考虑一个包含名为 的表的数据库具有以下记录的员工:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
3 | Jo | Paris | 27 | 2800 |
4 | Kim | Amsterdam | 30 | 3100 |
5 | Ramesh | New Delhi | 28 | 3000 |
6 | Huang | Beijing | 28 | 2800 |
下面的示例演示如何使用 ORDER BY 子句以面向对象的方式按 Salary 对该表的数据进行排序。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";
//建立连接
$mysqli = new mysqli($servername, $username, $password, $dbname);
//检查连接
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: ". $mysqli->connect_error;
exit();
}
//从数据库获取查询结果
$sql = "SELECT Name, Age, Salary
FROM Employee
ORDER BY Salary ASC";
$result = $mysqli->query($sql);
//获取关联数组
while ($row = $result->fetch_assoc()) {
printf("%s, %d, %d\n", $row["Name"], $row["Age"], $row["Salary"]);
}
//释放结果集
$result->free_result();
//关闭连接
$mysqli->close();
?>
上述代码的输出将是:
Marry, 24, 2750
Jo, 27, 2800
Huang, 28, 2800
John, 25, 3000
Ramesh, 28, 3000
Kim, 30, 3100
对数据进行排序 - 面向过程风格
要使用面向过程风格获得相同的结果,可以使用以下脚本
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";
//建立连接
$mysqli = mysqli_connect($servername, $username, $password, $dbname);
//检查连接
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: ". mysqli_connect_error();
exit();
}
//从数据库获取查询结果
$sql = "SELECT Name, Age, Salary
FROM Employee
ORDER BY Salary ASC";
$result = mysqli_query($mysqli, $sql);
//获取关联数组
while ($row = mysqli_fetch_assoc($result)) {
printf("%s, %d, %d\n", $row["Name"], $row["Age"], $row["Salary"]);
}
//释放结果集
mysqli_free_result($result);
//关闭连接
mysqli_close($mysqli);
?>
上述代码的输出将是:
Marry, 24, 2750
Jo, 27, 2800
Huang, 28, 2800
John, 25, 3000
Ramesh, 28, 3000
Kim, 30, 3100
完整 PHP MySQLi 参考
有关 PHP MySQLi 的所有属性、方法和函数的完整参考PHP MySQLi 扩展,请参阅 PHP MySQLi 参考。