亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

MySQL學習筆記之三排序和過濾

標簽:
MySQL

在数据库的使用中排序和过滤也是经常的操作

排序检索数据,关键字order

1.按照某个列名排序

普通排序
mysql> select * from user;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)
按照列名name排序是什么样呢?
mysql> select * from user order by name;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  4 | 王丽   |  31 | 广州厦门              |   2 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)

2.按照多个列名排序

mysql> select * from user order by name, age;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  4 | 王丽   |  31 | 广州厦门              |   2 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)

3.指定排序方向,默认为字母(a-z),升序

使用关键字desc,可以改为降序排列
mysql> select * from user order by name desc;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  1 | 张三   |  20 | 北京海底市南区        |   1 |+----+--------+-----+-----------------------+-----+4 rows in set (0.00 sec)

4.和limit配合使用,限制检索数据数量

mysql> select * from user order by name limit 3;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)

数据过滤,关键字where

1.检索某一条记录

mysql> select * from user where id = 2;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  2 | 李四   |  22 | 北京海底市南区        |   1 |+----+--------+-----+-----------------------+-----+1 row in set (0.00 sec)

和order by 配合使用
mysql> select * from user where id <4  order by name limit 3;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)

关于where子句的位置: 在同时使用where和order by子句时候, 我们应该让order by位于where 子句之后。

2.范围检索--between

mysql> select * from user where id between 2 and 4;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)

3.过滤--组合where

mysql> select * from user where id >1 and id < 4;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  2 | 李四   |  22 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 |+----+--------+-----+-----------------------+-----+2 rows in set (0.00 sec)

4. 数据过滤--or 操作符

mysql> select * from user where id <2 or id >=3;
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  3 | 赵芸   |  32 | 上海市徐汇区          |   2 ||  4 | 王丽   |  31 | 广州厦门              |   2 |+----+--------+-----+-----------------------+-----+3 rows in set (0.00 sec)

5.数据过滤--in 操作符

in操作符可以用于指定操作范围,范围内每个条件都可以进行匹配。
mysql> select * from user where name in ("张三","李四");
+----+--------+-----+-----------------------+-----+| id | name   | age | address               | sex |+----+--------+-----+-----------------------+-----+|  1 | 张三   |  20 | 北京海底市南区        |   1 ||  2 | 李四   |  22 | 北京海底市南区        |   1 |+----+--------+-----+-----------------------+-----+2 rows in set (0.00 sec)in操作符的优势:1. 使用长的合法选项清单时候, in操作符比较直观。2. in操作符计算的次序比较好管理3. in操作符一般比or操作符效率快4. in操作符可以包括其他select语句,能够更加动态的创建where子句

6.数据过滤--not操作符

not操作符只有一个特点, 就是否定它后面的任何条件。
mysql支持not对in, between, exists子句取反。

mysql> select * from user where name not in ("张三","李四");
+----+--------+-----+--------------------+-----+| id | name   | age | address            | sex |+----+--------+-----+--------------------+-----+|  3 | 赵芸   |  32 | 上海市徐汇区       |   2 ||  4 | 王丽   |  31 | 广州厦门           |   2 |+----+--------+-----+--------------------+-----+2 rows in set (0.00 sec)



作者:凌宇之蓝
链接:https://www.jianshu.com/p/ec22cdefc353


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消