MySQL Order By语法介绍_Mysql

今天在使用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

时间: 2024-09-14 21:42:29

MySQL Order By语法介绍_Mysql的相关文章

MySQL Order By语法

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"和"ord

MySQL Order By用法分享_Mysql

先按照下面的表结构创建mysql_order_by_test数据表,我们用实例一点一点告诉你,MySQL order by的用法. ORDER BY uid ASC 按照uid正序查询数据,也就是按照uid从小到大排列 ORDER BY uid DESC 按照uid逆序查询数据,也就是按照uid从大到小排列 我们来看 SELECT * FROM mysql_order_by_test ORDER BY uid ASC 这条语句是按照uid正序查询数据,也就是按照uid从小到大排列 返回的结果就是

MySQL进阶SELECT语法篇_Mysql

MySQL中SELECT语句的基本语法是:  SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY] [DISTINCT|DISTINCTROW|ALL] select_list [INTO {OUTFILE|DUMPFILE} 'file_name' export_options] [FROM table_references [WHERE where_definition] [GROUP BY co

Mysql SQL服务器模式介绍_Mysql

mysql SQL服务器模式 MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用--sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(--sql-mode =""

Mysql中Identity 详细介绍_Mysql

假如表中包含一列为auto_increment, 如果是Myisam类型的引擎,那么在删除了最新一笔数据,无论是否重启Mysql,下一次插入之后仍然会使用上次删除的最大ID+1. mysql> create table test_myisam (id int not null auto_increment primary key, name char(5)) engine=myisam; Query OK, 0 rows affected (0.04 sec) mysql> insert in

如何解决mysql重装失败方法介绍_Mysql

相信大家使用MySQL都有过重装的经历,要是重装MySQL基本都是在最后一步通不过,除非重装操作系统,究其原因就是系统里的注册表没有删除干净.下面是我总结的一点经验,都是血的教训: 1.在"运行"里键入regedit进入注册表. 2.HEKY_LOCAL_MACHINE/SOFTWARE/MYSQL目录删除 3. HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL 目录删除 4.HKEY

mysql 模糊搜索的方法介绍_Mysql

网上查了一下,有两种方法,第一种最土的方法:使用like语句第二种听涛哥说用全文索引,就在网上搜一下: 如何在MySQL中获得更好的全文搜索结果 很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录.在后台,这些程序使用在一个SELECT 查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候. mysql针对这一问题提供了一种基于内建的全文查找方式的解决方案.在此,开发者只需要

MySQL主从同步原理介绍_Mysql

概述 Mysql的Replication(复制)是一个异步的复制过程,从一个 Mysql instance(我们称之为 Master)复制到另一个Mysql instance(我们称之 Slave).在 Master 与 Slave之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在Master端. 主从同步需求 要实现 MySQL 的 Replication ,首先必须打开 Master 端的BinaryLog(mysq

如何恢复Mysql数据库的详细介绍_Mysql

由于在一台测试机器上打算重新安装Mysql数据库,由于简单粗暴的直接卸载了,没有备份公司Discuz和Redmine使用的Mysql数据库,过程可想的悲惨. 还好的是只是卸载掉了Mysql的程序,所有的数据文件还是存在的. 下面是在恢复数据库的过程 1. Discuz数据库 Discuz数据库的恢复非常顺利, 在安装好新版本的Mysql后,直接将原来的数据库文件copy到新的数据目录中,重新启动mysql, 就能看到恢复的数据库了 2. Redmine数据库 本打算直接使用上面的经验,也能看到所