1、WHERE 子句条件操作符

包括:> 、<、>=、<=、!= 、=、BETWEEN ... AND ...(在指定的两个值之间)

示例:

1)select * from student where stu_id=267;

2)select * from student where stu_id<267;

3)select * from student where stu_id between 267 and 305;

空值检查:使用 NULL 关键字

select * from student where stu_id is null;

2、WHERE 子句逻辑操作符

1) AND 

    如果需要使用多个列一起过滤才能查询出要查询的结果,可以使用 AND 进行连接。

select * from student where stu_name="test13" and stu_id=26;

 2)OR

与 AND 相反,只要匹配任一条件就可以。

select * from student where stu_id=26 or stu_id=27;

 3)计算次序

WHERE 可以包含任意数目的 AND 和 OR。允许两者结合以进行复杂和高级的过滤。

AND 的优先级高于 OR。也就是说在 SQL 中如果 AND 和 OR 混合使用,那么会优先运算 AND 然后在运算 OR。

例如:

SELECT * FROM products WHERE  pro_id = 3 OR  pro_id=4 AND pro_price>10;

那么对于 SQL 的理解是:查询 id 为 4 并且价格大于 10 或者 id 为3 的任意条件的产品信息。

如果要实现查询 id 为 3 或 4 并且价格大于 10 的产品信息,则需要使用圆括号来对操作符进行分组。

SELECT * FROM products WHERE (pro_id = 3 OR  pro_id=4) AND pro_price>10;

小贴士:如果 AND 和 OR 同时使用,不管什么情况下,最好都使用圆括号来进行分组,避免造成不必要的歧义。

3、 IN 

IN 用来指定条件范围,范围中的每个条件都可以进行匹配。用逗号分隔,全部括在圆括号中。

SELECT * FROM products WHERE pro_id IN (3, 4) AND pro_price>10;

作用和 OR 相同。使用 IN 的优点:

  • 在使用较长的选项清单时,使用 IN 更为清楚直观。
  • 使用 IN 时,计算次序也更加清楚。
  • IN 比 OR 执行更快。
  • IN 的最大有点是可以包含其他 SELECT 语句。

4、NOT IN

用来否定后面跟的条件。

SELECT * FROM student WHERE  stu_id NOT IN(26, 303); //表示查询 stu_id 为 26、303 之外的学生信息






MySql:SELECT 语句(三) WHERE 指定查询条件的更多相关文章

  1. 【MYSQL】update/delete/select语句中的子查询

    update或delete语句里含有子查询时,子查询里的表不能在update或是delete语句中,如含有运行时会报错:但select语句里含有子查询时,子查询里的表可以在select语句中. 如:把 ...

  2. 指定查询条件,查询对应的集合List(单表)

    TestDao.java(测试类) @Test public void findCollectionByConditionNoPage(){  ApplicationContext ac = new ...

  3. mysql SELECT语句 语法

    mysql SELECT语句 语法,苏州大理石方箱 作用:用于从表中选取数据.结果被存储在一个结果表中(称为结果集). 语法:SELECT 列名称 FROM 表名称 以及 SELECT * FROM ...

  4. 判断语句(if...else)if...else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码

    判断语句(if...else) if...else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码. 语法: if(条件) { 条件成立时执行的代码 } else { 条件不成立时 ...

  5. MySQL select 语句指定字段查询

    指定字段查询 SELECT 语法 SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as al ...

  6. mysql select语句查询流程是怎么样的

    select查询流程是怎么样的 mysql select查询的数据是查询内存里面,如果没有查询的数据没有在内存,就需要mysql的innodb引擎读取磁盘,将数据加载的内存后在读取.这就体现了,mys ...

  7. JAVA / MySql 编程—— 第三章 高级查询(一)

    1.        修改表: (1)修改表名语法: ALTER TABLE <旧表名> RENAME [ TO ] <新表名>: 注意:其中[TO]为可选参数,使用与否不影响结 ...

  8. MySQL SELECT语句

    说明:MySQL的offset第一行是0 位置指的是在SELECT语句中第几个出现的字段,如:1,则代表用第一个出现的字段来分组. SELECT语句: SELECT  select_expr1 [,s ...

  9. MySQL Select语句的执行顺序

    源文章:How is a query executed in MySQL? 当执行SQL的Select查询语句时,SQL指令的执行顺序如下: FROM 子句 WHERE 子句 GROUP BY 子句 ...

随机推荐

  1. 解决Arcgis相同投影仍出现偏差的问题

    网上下载了一个土地利用分类的polygon矢量图---导入arcgis--投影不是我想要的.出现了一些偏差 立即转换投影----按照网上教程--先定义投影-再定义坐标系---结果很糟糕,inconsi ...

  2. C++11如何减少内存拷贝次数

    C++11中出现了很多迷人的特性.例如智能指针实现高效的内存管理,std::bind和std::function函数封装器,以及lambda实现的函数对象语法糖,都是使我着迷的地方. 而C++11最大 ...

  3. redis使用get key中文变成十六进制编码

    redis-cli 后面加上 --raw 解决中文显示问题 redis-cli -h 127.0.0.1 -p 端口 -a 密码  --raw 不带 --raw 参数: redis-cli -h &g ...

  4. Java高级特性 第4节 输入输出流

    一.使用I/O操作文件 关键步骤: 使用File类操作文件或目录属性 使用FileInputStream类读文本文件 使用FileOutputStram类写文本文件 使用BufferedReader类 ...

  5. Anaconda安装python(idea兼容)

    官方网站www.anaconda.com 1 Windos安装 一路下一步,注意添加环境变量 成功过后,测试一下,打开cmd命令行 2 Linux安装 下载完成后上传到linux bash Anaco ...

  6. XShell停止滚屏,禁止滚动

     Ctrl+S:锁定当前屏幕  Ctrl+Q:解锁当前屏幕 Ctrl+Alt+]  进入命令输入状态

  7. springboot中添加热部署

    <dependency> <!--Spring 官方提供的热部署插件 --> <groupId>org.springframework.boot</group ...

  8. Linux查看端口占用情况并释放端口占用

    1.netstat -tunlp:查看所有tcp/udp端口占用及进程相关信息 2.netstat -tln | grep 端口号:查看特定端口占用情况 3.kill -9 进程ID(PID):释放指 ...

  9. keil5 MDK warning:registered ARM compiler version not found in path

    重装 打开keil5弹出窗口: warning:registered ARM compiler version not found in path... 解决: 增加系统环境变量 ARMCC5LIB ...

  10. Oracle中,如何将String插入到BLOB类型字段

    1,String插入到BLOB类型字段,(这里的字符串以生成的XML为例): String XML = document.asXML();  //使用dom4j写成的xml是String类型,记得st ...