美文网首页PHP实战MySQL从0到1玩转网络安全
从0到1学习网络安全 【MySQL基础-MySQL 排序】

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

作者: _07 | 来源:发表于2018-03-01 22:31 被阅读34次

    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学习网络安全 【目录】

    相关文章

      网友评论

        本文标题:从0到1学习网络安全 【MySQL基础-MySQL 排序】

        本文链接:https://www.haomeiwen.com/subject/tqhgxftx.html