MySQL Order By语法介绍

所属分类: Mysql / 数据库 阅读数: 1602
收藏 0 赞 0 分享
今天在使用ORDER BY的过程中出现了一点问题,发现之前对ORDER BY理解是错误的。

之前在w3s网站上看到ORDER BY的用法,以为是对选出来的数据按关键字升序或者降序排列,结果今天尝试select数据集数据的时候,发现使用ORDER BY 和ORDER BY DESC得出的查询结果完全不一样,按照自己之前的理解它们应该是结果相同,而内部顺序不一样而已。

问了一下同事,查了一下文档,才恍然大悟。如果我们在执行select语句的时候使用ORDER BY (DESC),那么它首先会对所有记录按照关键字有一个排序,然后依次读取所需的记录,而不是先选出记录再进行降序排列。 一个概念性的错误,所以记下来警示自己。

MySQL Order By keyword是用来给记录中的数据进行分类的。

MySQL Order By Keyword根据关键词分类

ORDER BY keyword是用来给记录中的数据进行分类的。

MySQL Order By语法
复制代码 代码如下:

SELECT column_name(s)
FROM table_name
ORDER BY column_name

注意:SQL语句是“字母大小写不敏感”的语句(它不区分字母的大小写),即:“ORDER BY”和“order by”是一样的。

MySQL Order By案例

下面的例子:从“Person”表中选取所有记录,并将“Age”列进行分类:
复制代码 代码如下:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM person ORDER BY age");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName']
echo " " . $row['LastName'];
echo " " . $row['Age'];
echo "<br />";
}
mysql_close($con);
?>
[html]
上面的代码将输出下面的结果:

Glenn Quagmire 33

Peter Griffin 35

按照升序或者降序进行分类排列

如果你使用了“ORDER BY”关键词,所有记录将按照默认的升序进行排列(即:从1到9,从a到z)

使用“DESC”关键词可以制定所有的数据按照降序排列(即:从9到1,从z到a):
[code]
SELECT column_name(s)
FROM table_name
ORDER BY column_name DESC

MySQL Order By根据两列进行分类

很多时候,我们需要同时根据两列内容(或者更多列)来对数据进行分类。当指定的列数多于一列时,仅在第一列的值完全相同时才参考第二列:
复制代码 代码如下:

SELECT column_name(s)
FROM table_name
ORDER BY column_name1, column_name2
更多精彩内容其他人还在看

MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径

安装环境需求:自从昨天安装了mysql 5.7,发现了一个问题,mysql5.6起,已经不支持2003系统了,如果安装了无法开启服务而且会出现在 本地计算机 无法启动 MySQL57 服务。错误 193: 0xc1,那就是版本不兼容,提示mysqld.exe不是正确的32位程序。... 查看详情
收藏 0 赞 0 分享

mysql5.5数据库data目录迁移方法详解

//前一阵子以为学习需要就在自己的本本上装了个mysql数据库。今天想把结合jsp做的项目拿到学校机器上用用,但发现数据库数据怎么迁移,首先找不到数据库的数据目录在什么地方,就上网搜了搜也没找到合适的答案,但无意中发现原来5.5已经很人性化了。现在废话不多。先说一下,其实数据库的... 查看详情
收藏 0 赞 0 分享

Windows Server 2003下修改MySQL 5.5数据库data目录

说明:操作系统:Windows Server 2003MySQL版本:5.5.25MySQL程序安装目录:D:\Program Files\MySQL\MySQL Server 5.5\MySQL数据库目录:C:\Documents and Settings\All Users\... 查看详情
收藏 0 赞 0 分享

win2008 R2服务器下修改MySQL 5.5数据库data目录的方法

说明:操作系统:Windows Server 2008 R2MySQL版本:5.5.25aMySQL程序安装目录:D:\Program Files\MySQL\MySQL Server 5.5MySQL数据库默认目录:C:\ProgramData\MySQL\MySQL Serv... 查看详情
收藏 0 赞 0 分享

MySQL数据库InnoDB引擎下服务器断电数据恢复方法

说明:线上的一台MySQL数据库服务器突然断电,造成系统故障无法启动,重新安装系统后,找到之前的MySQL数据库文件夹。问题:通过复制文件的方式对之前的MySQL数据库进行恢复,发现在程序调用时找不到数据库中的表,造成网站无法正常访问。分析:1、MySQL数据库,使用拷贝文件方式... 查看详情
收藏 0 赞 0 分享

mysql 5.5.x zip直接解压版安装方法

到官网下载mysql-5.5.10-win32.zip,然后将mysql解压到任意路径,如:C:\mysql-5.5.10-win32打开计算机->属性->高级系统设置->环境变量,新建一个环境变量,变量名为:MYSQL_HOME,变量值为你的mysql根目录,... 查看详情
收藏 0 赞 0 分享

mysql Non-Transactional Database Only(只支持MyISAM)

后来在做WordPress,一开始还不知道原来WordPress用的是InnoDB数据引擎,于是在原来的数据库里面就建了一个数据库,一开始也没发觉问题,安装,导入sql,都没问题,当时也没多想。直到这几天因为又要装多一个WordPress,用phpmyadmin访问数据库多一点,... 查看详情
收藏 0 赞 0 分享

MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)

先看一下最简单的例子,在test中,添加一个字段,字段名为birth,类型为date类型。mysql> alter table test add column birth date;Query OK, 0 rows affected (0.36 sec)Records: 0... 查看详情
收藏 0 赞 0 分享

MySQL查询空字段或非空字段(is null和not null)

现在我们先来把test表中的一条记录的birth字段设置为空。mysql> update test set t_birth=null where t_id=1;Query OK, 1 row affected (0.02 sec)Rows matched: 1  ... 查看详情
收藏 0 赞 0 分享

MySQL查看与修改当前数据库编码的方法

MySQL中,数据库的编码是一个相当重要的问题,有时候我们需要查看一下当前数据库的编码,甚至需要修改一下数据库编码。查看当前数据库编码的SQL语句为:mysql> use xxxDatabase changedmysql> show variables like 'c... 查看详情
收藏 0 赞 0 分享
查看更多