mysql条件查询and or使用方法及优先级实例分析

本文实例讲述了mysql条件查询and or使用方法及优先级。分享给大家供大家参考,具体如下:

mysql and与or介绍

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

使用OR关键字时:

  • 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来。
  • 如果不符合这些查询条件中的任何一条,这样的记录将被排除掉。

使用and关键字时:

  • 需要符合所有条件,这样的记录就会被查询出来。
  • 如果有任何一个条件不符合,这样的记录将被排除掉。

mysql and与or实例

本实例中需要使用到的表数据如下:

title content category seo_name
php数组 php数组使用分析 1 php
mysql distinct mysql distinct实例 2 mysql
java array java array使用方法 3 java
php input php input如何获值 4 php

(1)AND条件查询运算符实例:

使用 AND 来显示所有title为 "php数组" 并且category为1的数据:

SELECT * FROM ar WHERE title='php数组' AND category='1'

结果:

title content category seo_name
php数组 php数组使用分析 1 php

(2)OR条件运算符实例

使用 OR 来显示所有title为 "java array" 或者seo_name为 "php" 的数据:

SELECT * FROM ar WHERE title='java array' OR seo_name='php'

结果:

title content category seo_name
php数组 php数组使用分析 1 php
java array java array使用方法 3 java
php input php input如何获值 4 php

(3)结合 AND 和 OR 运算符

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

SELECT * FROM ar WHERE (title='java array' OR category='4')
AND seo_name='php'

结果:

title content category seo_name
php input php input如何获值 4 php

and与or优先级

在where中可以包含任意数目的and和or操作符,在没有任何其他符号的时候,例如括号,SQL会首先执行and条件,然后才执行or语句,如:

select * from table from id=1 or id=2 and price>=10;
/* http://www.manongjc.com/article/1439.html */

这条语句默认执行的是id=2并且price大于等于10的,或者是id=1。

如果加上括号:

select * from table from (id=1 or id=2) and price>=10;

则这条语句执行的是id=1或id=2,并且price大于等于10。

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》

希望本文所述对大家MySQL数据库计有所帮助。

(0)

相关推荐

  • MySQL查询条件中放置on和where的区别分析

    导语 今天在写 SQL 的时候,遇到一个问题.需求是这样的,查询数据,按照评分倒序.近一周访问量倒序,这样进行排序.问题是常规的写法,将 day >= xxx 条件放到 where 中, 如果某些数据近一周没有访问量,那么这条数据就查不出来.解决办法呢,就是将条件放到 LEFT JOIN 中. MySQL 语句执行顺序 首先先说明一个概念,MySQL 语句执行的顺序,并不是按照 SQL 语句的顺序.下面是示例 SQL SELECT DISTINCT < select_list > FRO

  • MySQL查询条件中in会用到索引吗

    当用人问你MySQL 查询条件中 in 会不会用到索引,你该怎么回答? 答案:可能会用到索引 动手来测试下 1.创建一张表,给字段port建立索引 CREATE TABLE `pre_request_logs_20180524` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ip` char(16) NOT NULL COMMENT '代理IP', `port` int(8) NOT NULL COMMENT '端口号', `status` enum('成功'

  • Mysql带And关键字的多条件查询语句

    MySQL带AND关键字的多条件查询,MySQL中,使用AND关键字,可以连接两个或者多个查询条件,只有满足所有条件的记录,才会被返回. SELECT * | {字段名1,字段名2,--} FROM 表名 WHERE 条件表达式1 AND 条件表达式2 [-- AND 条件表达式n]; 查询student表中,id字段值小于16,并且,gender字段值为nv的学生姓名 可以看出,查询条件必须都满足,才会返回 查询student表中,id字段值在12.13.14.15之中,name字段值以字符串

  • MySQL查询条件常见用法详解

    本文实例讲述了MySQL查询条件常见用法.分享给大家供大家参考,具体如下: 条件 使用where子句对表中的数据筛选,结果为true的行会出现在结果集中 语法如下: select * from 表名 where 条件; 例: select * from students where id=1; where后面支持多种运算符,进行条件的处理 比较运算符 逻辑运算符 模糊查询 范围查询 空判断 比较运算符 等于: = 大于: > 大于等于: >= 小于: < 小于等于: <= 不等于:

  • 详解Mysql查询条件中字符串尾部有空格也能匹配上的问题

    一.表结构 TABLE person id name 1 你 2 你(一个空格) 3 你(二个空格) 二.查询与结果 select * from person where `name` = ? 无论 ? = "你 + 几个空格",都会检索出全部三个结果. 三.原因 MySQL 校对规则属于PADSPACE,会忽略尾部空格 针对的是 varchar char text -- 等文本类的数据类型 此为 SQL 标准化行为.无需要设置也无法改变. 四.想要精确查询怎么办? 方法一:like

  • 浅析mysql 语句的调度优先级及改变

    MySQL的默认的调度策略可用总结如下:· 写入操作优先于读取操作.· 对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理.· 对某张数据表的多个读取操作可以同时地进行.MySQL允许你改变语句调度的优先级 MySQL提供了几个语句调节符,允许你修改它的调度策略:· LOW_PRIORITY关键字应用于DELETE.INSERT.LOAD DATA.REPLACE和UPDATE.· HIGH_PRIORITY关键字应用于SELECT和INSERT语句.· DELAYED

  • MySql带OR关键字的多条件查询语句

    上篇文章给大家介绍了Mysql带And关键字的多条件查询语句,下面给大家介绍MySql带OR关键字的多条件查询语句,感兴趣的朋友可以一起学习. MySQL带OR关键字的多条件查询,与AND关键字不同,OR关键字,只要记录满足任意一个条件,就会被查询出来. SELECT * | {字段名1,字段名2,--} FROM 表名 WHERE 条件表达式1 OR 条件表达式2 [-- OR 条件表达式n]; 查询student表中,id字段值小于15,或者gender字段值为nv的学生姓名 可以看出,返回

  • mysql实现查询数据并根据条件更新到另一张表的方法示例

    本文实例讲述了mysql实现查询数据并根据条件更新到另一张表的方法.分享给大家供大家参考,具体如下: 原本的数据库有3张表 travel_way :旅游线路表,存放线路的具体信息 traveltag :线路标签表,存放线路目的地等信息 tagrelation:标签对应表,存放线路和目的地的对应关系 因为业务逻辑的改变,现在要把它们合并为一张表,把traveltag中的目的地信息插入到travel_way中. 首先获取到所有线路对应的目的地,以线路ID分组,合并目的地到一行,以逗号分隔. 复制代码

  • MySQL中使用case when 语句实现多条件查询的方法

    举例如下: 数据表为DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5 要求是查询DemoTable中,condition1,condition2,condition3,condition4,condition5五个字段中符合任意两个或两个以上的条件的内容. 可使用case when来实现这个条件,需要嵌套子查询语句 sql语句代码示例如下: 复制代码 代码如下: SELECT * FROM DemoTa

  • MySQL左联多表查询where条件写法示例

    复制代码 代码如下: select * from _test a left join _test b on a.id=b.id where a.level='20' and a.month='04' and b.level='20' and b.month='03'; select a.*,b.* from (select * from _test where level='20' and month='04') as a left join (select * from _test where

随机推荐