文档章节

MySQL必知必会-5去重,截取和排序

z
 zhiliubai
发布于 2017/03/18 12:33
字数 675
阅读 54
收藏 0

去重

使用DISTINCT,DISTINCT告诉MySQL只返回不同(唯一)的列的行。

如果使用DISTINCT关键字,它必须放在列的前面。
不能部分使用DISTINCT,DISTINCT关键字应用于所有列而不仅是前置它的列,如果给出两个列,除非指定的两个列都不同,否则所有行都将被检索出来。(如果指定两个列,那么这两个列必须同时不同,约束两个列唯一)
   
   
  1. SELECT DISTINCT vend_id FROM products;
  2. SELECT DISTINCT vend_id, prod_id FROM products; //约束两个列唯一

截取

使用LIMIT截取

LIMIT 3,5 含义从行4开始的5行,也可使用LIMIT 5 OFFSET 3意为从行4开始取5行,就像LIMIT 3,5一样。

注意MySQL的行序号是从0开始,所以1是指第2行。

  
  
  1. SELECT * FROM products LIMIT 3, 4;
  2. SELECT * FROM products LIMIT 4 OFFSET 3; //和上面的SQL一样,注意3和4出现的位置不同。
LIMIT中指定要检索的行数为检索的最大行数,如果没有足够的行,MySQL将只返回它能返回的那么多行。


排序检索数据

使用order by子句,order by子句取一个或多个的名字,据此对输出进行排序。

   
   
  1. SELECT prod_name FROM products ORDER BY prod_name;
通常,ORDER BY子句中使用的列将是显示所选择列,实际上并不一定要这样,用非检索的列排序数据是完全合法的。例如:
   
   
  1. SELECT prod_id FROM products ORDER BY prod_name;
按多个列排序
   
   
  1. SELECT prod_name FROM products ORDER BY prod_name, prod_price;
上面的例子,仅在多个行具有相同的prod_name值时才对prod_name进行排序,如果prod_name的所有值都是唯一的,则不会按prod_name排序。

指定排序方向
数据排序不限于升序(A到Z),这只是默认的排序,还可以降序(Z到A),降序必须制定DESC关键字。
   
   
  1. SELECT
  2. prod_id,
  3. prod_price,
  4. prod_name
  5. FROM
  6. products
  7. ORDER BY
  8. prod_price DESC;
如果需要对多个列,分别使用降序和升序,只需在列的后面使用DESC或ASC(升序)
   
   
  1. SELECT
  2. prod_id,
  3. prod_price,
  4. prod_name
  5. FROM
  6. products
  7. ORDER BY
  8. prod_price DESC,
  9. prod_name ASC;

特别注意:在对文本性数据排序,在字典排序中,A与a相同,如果要改变这种排序,用简单的ORDER BY子句是做不到的。

使用ORDER BY和LIMIT组合,找出列中最高或最低值。
   
   
  1. SELECT
  2. prod_price
  3. FROM
  4. products
  5. ORDER BY
  6. prod_price DESC
  7. LIMIT 1;
DESC告诉由贵到便宜检索,LIMIT 1则告诉只返回一行。
ORDER BY应该保证在FROM子句之后,如果使用LIMIT,必须保证在ORDER BY子句之后。使用子句的顺序不对将产生错误信息。



本文转载自:http://blog.csdn.net/zoroday/article/details/54838140

z
粉丝 0
博文 26
码字总数 0
作品 0
广州
私信 提问
5本数据库经典之作,没看过的都白学了!

  【IT168 评论】1、 《数据库系统实现》   内容简介:书中对数据库系统实现原理进行了深入阐述,并具体讨论了数据库管理系统的三个主要成分――存储管理器、查询处理器和事务管理器的实...

it168网站
2017/11/13
0
0
双11Java程序员书单推荐

Java 《Java核心技术卷I》 《Java核心技术卷II》 《Java编程思想》 《Java并发编程实战》 《Effective Java》 《Java8实战》 《Java8函数式编程思维》 《深入理解Java虚拟机》 《Java性能权威...

黄步欢
2017/11/04
0
0
前端必知必会HTTP请求系列(二)简单一点的HTTP协议

http协议用户客户端和服务器之间的通信 http协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信。 那么问题来个如果两台服务器之间一台服务器向另一台服务器进行接口请求...

前端技术小哥
01/03
0
0
MySQL必知必会笔记

【英】ben Forta著 1   1.0 选择数据库 use eg: use 数据库名;   2.0 show命令查看信息: show databases;               show tables;               sho...

wei-spring
2014/05/26
0
0
MySQL必知必会(2):数据检索(SELECT)

本文介绍Mysql开发中使用最频繁的功能,SELECT数据检索 简介 检索数据是从数据库中使用特定语句获取页面需要的数据。每天你上网浏览的网页,绝大部分数据都是从数据库中检索出来,所以它也是...

星空幻颖
2017/01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kibana汉化

kibana5 / 6 需要下载补丁包,https://github.com/anbai-inc/Kibana_Hanization 其中 v6 版本原生支持国际化,只需要添加资源文件并且配置即可 kibana7 v7版本官方内置汉化资源,在配置文件 ...

细肉云吞
11分钟前
2
0
spring boot 自定义日志 log4j2

使用默认的日志在实际开发中会存在很多问题,比如备份文件名称无法自动重命名、各个等级的日志被放在一个文件中等,所以实际开发中为了更好满足我们的需求,我们一般都会自定义采用配置的方式...

雷开你的门
15分钟前
1
0
PCB设计-Allegro软件入门系列-设计参数配置(上)

前言 经历了导入网表,和放置器件后,我们就要画板子了,但是必要的设计参数也要先准备好,磨刀不误砍柴工。 《一》显示参数 这里主要设置DRC报错标志大小和飞线显示类型 (1)DRC标志可以适当...

demyar
16分钟前
2
0
js实现微博、微信分享

html <!-- 分享 --><div class="share-box"> <b style="vertical-align: middle;">分享到:</b> <a title="分享到新浪微博" class="shareSina"><span class="share-icon"></span><......

张兴华ZHero
32分钟前
3
0
创龙TMS320DM8168浮点DSP C674x + ARM Cortex-A8的CPU、NAND FLASH、NOR FLASH

TL6678-EasyEVM是广州创龙基于SOM-TL6678核心板而研发的一款多核高性能DSP开发板。开发板采用核心板+底板方式,底板采用沉金无铅工艺的四层板设计,尺寸为200mm*106.65mm,它为用户提供了SOM...

Tronlong创龙
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部