第19章 MySQL 排序教程

咱们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。

如果咱们需要对读取的数据进行排序,咱们就可以使用 MySQL 的 ORDER BY 子句来设定陛下想按哪个字段哪种方式来进行排序,再return 搜索结果。

语法

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


    SELECT field1, field2,...fieldN FROM table_name1, table_name2...
    ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

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

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

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

实例

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


    SQL 排序
      
    mysql> use liulianjiangcsdn;
    Database changed
    mysql> SELECT * from liulianjiangcsdn_tbl ORDER BY submission_date ASC;
    +-----------+---------------+---------------+-----------------+
    | liulianjiangcsdn_id | liulianjiangcsdn_title  | liulianjiangcsdn_author | submission_date |
    +-----------+---------------+---------------+-----------------+
    | 3         | 学习 Java   | liulianjiangcsdn.COM    | 2015-05-01      |
    | 4         | 学习 Python | liulianjiangcsdn.COM    | 2016-03-06      |
    | 1         | 学习 PHP    | liulianjiangcsdn教程  | 2017-04-12      |
    | 2         | 学习 MySQL  | liulianjiangcsdn教程  | 2017-04-12      |
    +-----------+---------------+---------------+-----------------+
    4 rows in set (0.01 sec)
     
    mysql> SELECT * from liulianjiangcsdn_tbl ORDER BY submission_date DESC;
    +-----------+---------------+---------------+-----------------+
    | liulianjiangcsdn_id | liulianjiangcsdn_title  | liulianjiangcsdn_author | submission_date |
    +-----------+---------------+---------------+-----------------+
    | 1         | 学习 PHP    | liulianjiangcsdn教程  | 2017-04-12      |
    | 2         | 学习 MySQL  | liulianjiangcsdn教程  | 2017-04-12      |
    | 4         | 学习 Python | liulianjiangcsdn.COM    | 2016-03-06      |
    | 3         | 学习 Java   | liulianjiangcsdn.COM    | 2015-05-01      |
    +-----------+---------------+---------------+-----------------+
    4 rows in set (0.01 sec)

读取 liulianjiangcsdn_tbl 表中所有数据并按 submission_date 字段的升序排列。


在 PHP 脚本中使用 ORDER BY 子句

陛下可以使用PHP函数的 mysqli_query() 及相同的 SQL SELECT 带上 ORDER BY 子句的命令来获取数据。

该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来输出所有查询的数据。

实例

尝试以下实例,查询后的数据按 submission_date 字段的降序排列后return 。


    MySQL ORDER BY 测试: 
      
    
    <?php
    $dbhost = 'localhost';  // mysqlserver 主机地址
    $dbuser = 'root';            // mysql用户名
    $dbpass = '123456';          // mysql用户名password 
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
        die('连接失败: ' . mysqli_error($conn));
    }
    // 设置编码,防止中文乱码
    mysqli_query($conn , "set names utf8");
     
    $sql = 'SELECT liulianjiangcsdn_id, liulianjiangcsdn_title, 
            liulianjiangcsdn_author, submission_date
            FROM liulianjiangcsdn_tbl
            ORDER BY  submission_date ASC';
     
    mysqli_select_db( $conn, 'liulianjiangcsdn' );
    $retval = mysqli_query( $conn, $sql );
    if(! $retval )
    {
        die('无法读取数据: ' . mysqli_error($conn));
    }
    echo '<h2>liulianjiangcsdn教程 MySQL ORDER BY 测试<h2>';
    echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
    while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
    {
        echo "<tr><td> {$row['liulianjiangcsdn_id']}</td> ".
             "<td>{$row['liulianjiangcsdn_title']} </td> ".
             "<td>{$row['liulianjiangcsdn_author']} </td> ".
             "<td>{$row['submission_date']} </td> ".
             "</tr>";
    }
    echo '</table>';
    mysqli_close($conn);
    ?>

本专栏所有文章

第1章 MySQL 教程第2章 MySQL 安装教程
第3章 MySQL 管理教程第4章 MySQL PHP 语法教程
第5章 MySQL 连接教程第6章 MySQL 创建数据库教程
第7章 MySQL 删除数据库教程第8章 MySQL 选择数据库教程
第9章 MySQL 数据类型教程第10章 MySQL 创建数据表教程
第11章 MySQL 删除数据表教程第12章 MySQL 插入数据教程
第13章 MySQL 查询数据教程第14章 MySQL WHERE 子句教程
第15章 MySQL UPDATE 更新教程第16章 MySQL DELETE 语句教程
第17章 MySQL LIKE 子句教程第18章 MySQL UNION教程
第19章 MySQL 排序教程第20章 MySQL 分组教程
第21章 MySQL 连接的使用教程第22章 MySQL NULL 值处理教程
第23章 MySQL 正则表达式教程第24章 MySQL 事务教程
第25章 MySQL ALTER命令教程第26章 MySQL 索引教程
第27章 MySQL 临时表教程第28章 MySQL 复制表教程
第29章 MySQL 元数据教程第30章 MySQL 序列使用教程
第31章 MySQL 处理重复数据教程第32章 MySQL 及 SQL 注入教程
第33章 MySQL 导出数据教程第34章 MySQL 导入数据教程
第35章 MySQL 函数教程第36章 MySQL 运算符教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 全面复习:地毯式轰炸,查缺补漏:精确制导。
  • 别人要来害你,最简单的方式是利用你的善良,其次是因为你轻信于人。在职场中,信任往往应该有尺度。在自己的立场上,守住应该有的利益,相信应该相信的话,这才能活得更好。
  • 大道自然,何须强自静。行无求而自松,饮无奢而自清,卧无欲而自宁。
  • 胜利不是战胜敌人,而是提高自己。我们只要每天进步百分之一,那就是成功。成功的人之所以成功,靠得是实力与洞察力。失败的人之所以失败,是因为他们做事一开始就抱有侥幸的心理,而不是通过现象看本质,然后找到解决的方案。
  • 先用水平思考掌握整体状况,再用垂直思考深入探求。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值