SELECT语句返回所有符合条件的行!

使用情景:我们想要SELECT查询出来的数据第一行或者前几行记录,或者要对查询出来的记录进行分页。


1.查询案例递进

查询问题1:查询出来所有商品的名称。

查询SQL: SELECT prod_name FROM Products;

查询结果:


查询问题2:查询出来所有商品名称,但是每一种商品名称只可以出现一次。

查询结果:


查询问题3:查询出来所有的商品,但相同名称的商品只出现1次,只取出前5条数据。

查询SQL:SELECT DISTINCT prod_name FROM Products LIMIT 5;



2.LIMIT说明


2.1 LIMIT num1,num2

命令解释:

1.num1和num2是数字;

2.mysql的第一行是从行0开始,即num1最小值是0而非1;有过编程经历的人都知道,索引值的第一位通常是0;

3.LIMIT num1,num2,其中num1表示开始位置,即从哪里开始;num2表示要查询的行数,即取出来几条数据,所以LIMIT num1,num2是命令mysql返回num1行开始后的总条数是num2的若干行。比如LIMIT 2,3的含义是取出行2(第3行)开始后的3行数据,即行2(第三行)、行3(第四行)、行4(第五行)。

类比现实:小学5年级排成1队从左边起第3个人(从哪开始)开始出来2个(个数)人,就是第3个人和第4个人出队;

案例SQL:


结果分析:

SELECT DISTINCT prod_name FROM Products;查询的是全部符合条件的数据,共9条。

SELECT DISTINCT prod_name FROM Products LIMIT 1,3;查询的是从行1开始后的3条数据。从图标中可以看到是取出来的数据是第2,3,4行数据


2.2.LIMIT num2

命令解释:请参考LIMIT num1,num2命令来对比理解LIMIT num2.

1.num2是数字,要查询出来的行数。如果不告诉从哪里开始取值,只告诉取出来个数,那么就存在随便从哪个位置开始,然后取出来num2条数据;

2.LIMIT num2等价于LIMIT 0,num2,即从行0记录开始,查询出来num2条记录。因此可以知道LIMIT num2,不是随意位置乱取数据,而是从行0记录开始,查询出来num2条记录。

案例SQL:SELECT DISTINCT prod_name FROM Products LIMIT 2;


结果分析:表示告诉mysql返回从行0记录开始的后面2行记录。参考上图对比,取出来的记录是行0,行1记录。


2.3注意事项

a.行号,是指计算机对数据的索引值,计算机识别的顺序。行号从0开始,检索的第1个数据的索引值是行0;

b.第几行,是指人的对数据的索引值的识别顺序,人查询个数从1开始,查询的第1个数据的索引值是1而非0;

c.案例a、b、c、d四条记录,计算机索引值说b的行号是1,人的常规认识说b是第2行数据.

d.如果记录不够,比如一共就10条记录,现在要查询LIMITE 9,5;没有足够的行数,那么mysql有多少行就返回多少行。mysql不会进行无中生有。


2.4LIMIT新语法

鉴于LIMIT num1,num2语法可能引起误解,从行num1开始获取num2条数据。MySql5支持LIMIT的新语法。

语法如下:LIMIT num2 OFFSET num1

语法解释:新语法和LIMIT num1,num2一样,只是新语法简单明了,OFFSET是偏移的意思,从num1位置偏移num2.


从上面案例可以看出,LIMIT 3 OFFSET 2,从行2开始获取3条记录。


2.5LIMIT使用场景

1.使用LIMIT进行数据分页;

2.想要查询某种条件的数据是否存在,可以使用LIMIT 1;

更多相关文章

  1. MySQL数据导入到infobright中
  2. flash如何自动连接mysql数据库
  3. lucene 4.10 检索mysql数据库
  4. 自建MySQL5.6数据库查询优化
  5. 如何使用PDO从MySQL获取正确的数据类型?
  6. mysql 基于position 恢复数据库
  7. 从mysql中导出单个表结构和数据
  8. Amoeba for MySQL---分布式数据库Proxy解决方案
  9. 连接相关标签的最佳数据库设计

随机推荐

  1. Linux 2.6.x 内核模块加载错误 “Invalid
  2. 在centos中安装了mysql5.7之后解决不知道
  3. Linux实验报告一
  4. Linux开发基础(1):开发板的挂载
  5. 使用Python+selenium实现第一个自动化测
  6. Linux学习笔记 --- xxx is not in the su
  7. 边学边干Linux内核指导(8)——进程调度
  8. linux下jboss7.1 启动,关闭脚本
  9. Linux中/proc目录下文件详解之(二)
  10. 解决Linux安装 VMware tools 工具的方法