从0到1学习网络安全 【MySQL基础-MySQL 排序】

MySQL 排序

我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

语法
以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:

SELECT 字段 FROM 表名 ORDER BY 字段 【ASC | DESC】

  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
  • 你可以设定多个字段来排序。
  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
  • 你可以添加 WHERE...LIKE 子句来设置条件。


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

以下将在 SQL SELECT 语句中使用 ORDER BY 子句来读取MySQL 数据表 mydb_jianshu 中的数据:

实例

以下实例,结果将按升序及降序排列。

mysql> use mydb;
Database changed
mysql> select * from mydb_jianshu order by jianshu_id asc;
+------------+----------------------------+----------------+-----------------+
| jianshu_id | jianshu_title              | jianshu_author | submission_date |
+------------+----------------------------+----------------+-----------------+
|          2 | 学习网络安全从0到1         | Fangdm         | 2018-02-09      |
|          3 | MySQL基础                  | Fangdm         | 2018-02-09      |
+------------+----------------------------+----------------+-----------------+
2 rows in set (0.08 sec)
mysql> select * from mydb_jianshu order by jianshu_id desc;
+------------+----------------------------+----------------+-----------------+
| jianshu_id | jianshu_title              | jianshu_author | submission_date |
+------------+----------------------------+----------------+-----------------+
|          3 | MySQL基础                  | Fangdm         | 2018-02-09      |
|          2 | 学习网络安全从0到1         | Fangdm         | 2018-02-09      |
+------------+----------------------------+----------------+-----------------+
2 rows in set (0.00 sec)

读取 mydb_jianshu 表中所有数据并按 jianshu_id 字段的升降序排列。


在 PHP 脚本中使用 ORDER BY 子句

实例

以下实例,查询后的数据按 jianshu_id 字段的降序排列后返回。

<?php
$dbname = 'mydb';
$servername = 'localhost';
$username = 'root';
$password = '';
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "select * from mydb_jianshu order by jianshu_id desc;";

    // 设置结果集为关联数组
    $result = $conn->query("$sql");
    $data = $result->fetchAll(PDO::FETCH_ASSOC);
    echo "<table border='1'>
          <tr>
          <td>jianshu_id</td>
          <td>jianshu_title</td>
          <td>jianshu_author</td>
          <td>submission_date</td>
          </tr>
";
    foreach ($data as $k => $v) {
        echo "<tr>";
        echo "<td>" . $v['jianshu_id'] . "</td>";
        echo "<td>" . $v['jianshu_title'] . "</td>";
        echo "<td>" . $v['jianshu_author'] . "</td>";
        echo "<td>" . $v['submission_date'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} catch (PDOException $e) {
    echo $sql . "<br>" . $e->getMessage();
}

$conn = null;
?>

输出结果:


image.png



注:注入测试时我们可以利用 ORDER BY 来判断表中含多少个字段。

从0到1学习网络安全 【目录】

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,060评论 0 19
  • 数据库入门 数据库: 保存有组织的数据的容器(通常是一个文件或一组文件).数据库软件应该称为 DBMS(DataB...
    Mjericho阅读 522评论 0 0
  • 自从有了网络,舆论似乎就成了主导。任何一件具有话题性的事件,都会被加以润色,推上风口浪尖。这世上,总有人热衷于此事...
    陳若心阅读 298评论 0 1
  • 《我是一粒尘土》 我是一粒尘土, 被吹散在风中。 风吹散了一粒我, 却也造就了千万粒我。 于是后来, 我是千千万万...
    九五乾谦阅读 1,005评论 3 13
  • 图片发自简书App 打扫完房间,此时午夜十一点五十二分。跳跳还在笼子里张望着,大概是看到敷上面膜的我怪怪的吧...
    幻梦一场阅读 255评论 0 0