老莫的笔记本  
  
请选择 进入手机版 | 继续访问电脑版
查看: 1111|回复: 0

MySql 在数据库里排序 ORDER BY子句

[复制链接]

662

主题

878

帖子

5115

积分

超级版主

Rank: 8Rank: 8

积分
5115
发表于 2018-7-26 23:22:26 | 显示全部楼层 |阅读模式
先贴代码:
  1. mysql> use RUNOOB;
  2. Database changed
  3. mysql> SELECT * from runoob_tbl ORDER BY submission_date ASC;
  4. +-----------+---------------+---------------+-----------------+
  5. | runoob_id | runoob_title  | runoob_author | submission_date |
  6. +-----------+---------------+---------------+-----------------+
  7. | 3         | 学习 Java   | RUNOOB.COM    | 2015-05-01      |
  8. | 4         | 学习 Python | RUNOOB.COM    | 2016-03-06      |
  9. | 1         | 学习 PHP    | 菜鸟教程  | 2017-04-12      |
  10. | 2         | 学习 MySQL  | 菜鸟教程  | 2017-04-12      |
  11. +-----------+---------------+---------------+-----------------+
  12. 4 rows in set (0.01 sec)
  13. mysql> SELECT * from runoob_tbl ORDER BY submission_date DESC;
  14. +-----------+---------------+---------------+-----------------+
  15. | runoob_id | runoob_title  | runoob_author | submission_date |
  16. +-----------+---------------+---------------+-----------------+
  17. | 1         | 学习 PHP    | 菜鸟教程  | 2017-04-12      |
  18. | 2         | 学习 MySQL  | 菜鸟教程  | 2017-04-12      |
  19. | 4         | 学习 Python | RUNOOB.COM    | 2016-03-06      |
  20. | 3         | 学习 Java   | RUNOOB.COM    | 2015-05-01      |
  21. +-----------+---------------+---------------+-----------------+
  22. 4 rows in set (0.01 sec)
复制代码
上述代码补充:
1.可以使用任何字段作为排序的条件,从而返回排序后的查询结果。
2.可以设定多个字段进行排序。
3.可以使用ASC 或 DESC 关键字来设置查询结果是按升序或者降序排列。默认情况下,它是按照升序排列的。
4.可以添加 WHERE--LIKE 子句来设置条件

在PHP中使用: 老套路了 此处省略 好吧,我还是打把: 使用 mysqli_query()
  1. <?php
  2. $dbhost = 'localhost:3306';  // mysql服务器主机地址
  3. $dbuser = 'root';            // mysql用户名
  4. $dbpass = '123456';          // mysql用户名密码
  5. $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
  6. if(! $conn )
  7. {
  8.     die('连接失败: ' . mysqli_error($conn));
  9. }
  10. // 设置编码,防止中文乱码
  11. mysqli_query($conn , "set names utf8");
  12. $sql = 'SELECT runoob_id, runoob_title,
  13.         runoob_author, submission_date
  14.         FROM runoob_tbl
  15.         ORDER BY  submission_date ASC
  16. mysqli_select_db( $conn, 'RUNOOB' );
  17. $retval = mysqli_query( $conn, $sql );
  18. if(! $retval )
  19. {
  20.     die('无法读取数据: ' . mysqli_error($conn));
  21. }
  22. echo '<h2>菜鸟教程 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, MYSQL_ASSOC))
  23. {
  24.     echo "<tr><td> {$row['runoob_id']}</td> ".
  25.          "<td>{$row['runoob_title']} </td> ".
  26.          "<td>{$row['runoob_author']} </td> ".
  27.          "<td>{$row['submission_date']} </td> ".
  28.          "</tr>";
  29. }
  30. echo '</table>mysqli_close($conn);
  31. ?>
复制代码

注意事项:如果字符集是 gbk, 直接在查询语句的后边添加 ORDER BY
  1. SELECT *
  2. FROM runoob_tbl
  3. ORDER BY runoob_title;
复制代码
如果字符集采用的是 UTF8 需要先对字段进行转码后排序
  1. SELECT *
  2. FROM runoob_tbl
  3. ORDER BY CONVERT(runoob_title using gbk);
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表