加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL数据库怎样实现多字段过滤

发布时间:2018-08-18 02:16:36 所属栏目:编程 来源:码农视界
导读:技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战 我国移动互联网进入了飞速成长阶段,互联网人才日益受到企业的重视,个中PHP开拓人才即是个中之一,在互联网旅游、金融、餐饮、娱乐、交际等一些新兴企业与软件开拓企业中,PHP开拓
技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战

我国移动互联网进入了飞速成长阶段,互联网人才日益受到企业的重视,个中PHP开拓人才即是个中之一,在互联网旅游、金融、餐饮、娱乐、交际等一些新兴企业与软件开拓企业中,PHP开拓岗亭相对占据焦点职位,本日给各人分享的技能常识是——mysql数据库怎样实现多字段过滤。

1.多字段过滤查询

类比实际:查询公司中户籍是北京的、年数高出30岁、性别是男的同事信息;

查询场景:查询商品名称是'King doll'、商品价值是9.49的商品。

查询SQL:

  1. SELECT prod_id, prod_name, prod_price F ROM Products W HERE prod_name = 'King doll' AND prod_price = 9.49; 

查询功效:

MySQL数据库怎样实现多字段过滤

2.多字段过滤毗连

WHERE字句中有多个字段举办查询过滤,过滤前提怎样毗连的呢?MySql应承给出多个WHERE字句举办过滤,它们可以行使AND可能OR举办毗连!

AND毗连类比实际:飞鹰小学5年2班身高高出1米3、不戴眼镜的男同窗去操场上跑步。按照上述描写可以得出结论必需同时满意身高高出1米3、不戴眼镜、男生这三个前提的同窗才必要去操场跑步,任何一个前提不满意都不消去操场跑步。

OR毗连类比实际:飞鹰小学5年2班身高高出1米3或不戴眼镜的同窗去操场上跑步,按照上述描写可以得出结论只要满意身高高出1米3,或不戴眼久魅这两个前提中恣意一个前提的门生就要去操场跑步,即身高高出1米3的同窗要去跑步,不戴眼镜的同窗要去跑步。只要满意恣意一个前提就必要去操场可以!

2.1AND操纵符

AND运算符浸染?用来指示检索满意全部给定前提的行。假如必要同时满意多个过滤前提,只必要在过滤前提之间添加AND即可。

测试案例:查询商品单价在2-5之间,商品数目大于便是10的订单数据。

测试SQL:

  1. SELECT * FROM OrderItems W HERE item_price B ETWEEN 2 AND 5 AND quantity >= 10 ORDER BY order_num DESC; 

测试功效:

MySQL数据库怎样实现多字段过滤

功效声名:假若有多个过滤前提必要同时满意,那么只必要在哪些过滤前提之间加上AND要害字即可,查询前提理论上个数不限!

2.2OR操纵符

OR操纵符浸染?用来指示检索满意任一给定前提的行。假若有多个过滤前提,那么必要过滤前提之间添加OR即可。

测试案例:查询商品单价在3-5之间,或商品数目大于便是200的订单数据。

测试SQL:

  1. SELECT * F ROM OrderItems W HERE item_price B ETWEEN 3 AND 5 OR quantity >= 200 ORDER BY order_num DESC; 

测试功效:

MySQL数据库怎样实现多字段过滤

功效声名:只要满意商品单价在[3,5]之间,可能商品数目大于便是200的订单都满意前提。

2.3AND和OR举办比拟

AND必需满意所有前提,OR只必要满意任一前提。

类比领略:此刻有一群玄色和白色的公企鹅,假如取走玄色母企鹅,即SELECT * FROM 企鹅 WHERE 颜色=玄色 AND 性别=母是查询不到企鹅的,由于两个前提必需同时满意,性别=母是没有;假如要取走颜色是白色或性别是母的企鹅,即SELECT * FROM 企鹅 WHERE 颜色=白色 OR 性别=母,那么就可以将白色公企鹅查询出来。

2.4执行序次

将AND和OR团结行使举办伟大的数据过滤,那么就会呈现执行序次的题目。

类比实际:好比小学中进修有括号四则殽杂运算,那么运算就要满意必然次序;好比公司中查询月薪高出10w,而且地位是打点层或开拓者的员工。

测试景象:查询商品单价是3.49,商品编号是BNBG01或BNBG03的订单。

说明思索:查询商品单价必需满意3.49,而商品编号只必要满意BNBG01或BNBG03任一个即可。

测试SQL:

  1. SELECT * F ROM OrderItems W HERE item_price B ETWEEN 3 AND 5 OR quantity >= 200 ORDER BY order_num DESC; 

测试功效:

MySQL数据库怎样实现多字段过滤

功效说明:

  1. 数据没有满意我们的预期,为什么呢?单价必需便是3.49。
  2. 在SQL的天下中AND运算符优先于OR运算符,比如乘法运算优先于加减法运算先执行。
  3. SELECT * F ROM OrderItems W HERE item_price=3.49 AND prod_id='BNBG01' OR prod_id='BNBG03';现实查询的功效是单价便是3.49而且商品编号是'BNBG01'的订单,可能商品编号是'BNBG03'的订单,以是和我们预期是纷歧样的!

怎样办理AND和OR的次序题目呢?行使圆括号明晰地分组举办响应的操纵。

测试SQL:

  1. SELECT * F ROM OrderItems W HERE item_price= 3.49 AND (prod_id = 'BNBG01' OR prod_id= 'BNBG03') ; 

测试功效:

MySQL数据库怎样实现多字段过滤

功效说明:

  1. 从查询功效中可以看到,(prod_id='BNBG01' OR prod_id='BNBG03')作为1个整体酿成1个执行单位;
  2. 圆括号的优先级高于AND,AND优先级高于OR;
  3. 假如查询过滤前提过多,行使AND可能OR,那么就应该行使圆括号明晰地分组操纵,不要以来默认地计较序次!行使圆括号的甜头在于可消除歧义,加强可读性。 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读