参考资料:《Mysql必知必会》

1.使用where子句

示例如下:查询价格等于10.5的行

select * from commodity where price=10.5

输出:

1 1001 牙刷 10.5

2.where的操作符

上个示例中,我们使用到了‘=’这个操作符,下面列出所有条件操作符

where操作符

=

等于

<>

不等于

!=

不等于

<

小于

>

大于

<=

小于等于

>=

大于等于

between

在指定的两个值之间

3.检查单个值

在Mysql中,检查字段是不区分大小写的

比如:where name=‘ys’的结果和where name='YS'是一样的。我的数据当中没有字母,所以不做演示了。

4.不匹配检查

如下,查询typeid不等于1001的所有行

select * from commodity where typeid<>1001

其输出结果和!=是一样的:

select * from commodity where typeid!=1001

都是输出:

3 1002 茶几 999.9

41003电视3199

51003冰箱2999

610041 手机1999

710042 手机7699

81004.3 手机699.9

91005T恤21.5

101005牛仔裤99

5.范围值检查

如下,查询typeid在1002和1004之间的所有行,包括1002和1004

select * from commodity where typeid between 1002 and 1004

输出:

3 1002 茶几 999.9

41003电视3199

51003冰箱2999

610041 手机1999

710042 手机7699

81004.3 手机699.9

必须指定两个值,一个低端值和一个高端值,中间必须用and连接。

6.空值检查

如下,检查name为NULL的行,注意需要用is null。不是用=

select * from commodity where name is null

会输出所有name字段为null的行

7.组合where子句

上面的所有示例都是单个查询条件,但是实际中肯定会出现不止一个查询条件,这时候就可以用and或or来组合where子句

示例1,查询价格大于20的1001型商品

select * from commodity where price>20 and typeid=1001

输出:

2 1001 毛巾 21.5

示例2,查询价格大于3000的1003型商品或1004型商品

select * from commodity where typeid=1003 or typeid=1004 and price>3000

大家仔细看看上面的代码,似乎没什么问题,类型等于1003或类型等于1004并且价格大于3000

输出结果:

4 1003 电视 3199

51003冰箱2999

710042 手机7699

但是从结果看是错误的,这是由于计算次序的问题。在mysql中and拥有更高的优先级,所以看似没问题的组合被mysql错误的组合了,where后面的条件可以看成

(price>3000 and typeid=1003) or typeid=1004

可以用小括号来组合where后面的条件,小括号具有比and和or更高的优先级。

所以,正确的写法如下:

select * from commodity where (typeid=1003 or typeid=1004) and price>3000

输出:

4 1003 电视 3199

710042 手机7699

8.not和in操作符

in用来指定条件范围

如下,查询商品类型等于1001,1002的所有行

select * from commodity where typeid in (1001,1002)

输出:

1 1001 牙刷 10.5

21001毛巾21.5

31002茶几999.9

需要注意的是,大家不要当成between的另外一种写法,小括号中可以有N个值,用逗号隔开,最后会返回指定字段出现在小括号中的所有行。

in和or的功能其实有些相同,但是in在遇到更多条件时会显得更加简洁。而且in的执行效率更快,最大的优点是可以包含select语句。比如小括号里面你不确定是哪些值,需用实时的查询,那么select语句就可以写在小括号里面。

not用来否定后面跟着的条件。

如下,查询商品类型不等于1001,1002的所有行

select * from commodity where typeid not in (1001,1002)

输出:

4 1003 电视 3199

51003冰箱2999

610041 手机1999

710042 手机7699

81004.3 手机699.9

91005T恤21.5

101005牛仔裤99

not支持对between、in、exists的取反。

mysql where子句 参数_MySql——使用where子句过滤数据相关推荐

  1. mysql存储过程list参数_mysql存储过程教程(1)

    MySQL存储过程 1.1         CREATE  PROCEDURE  (创建) CREATE PROCEDURE存储过程名(参数列表) BEGIN SQL语句代码块 END 注意: 由括号 ...

  2. mysql异步复制参数_MySQL Replication(异步复制)基本原理

    1.复制进程 Mysql的复制(replication)是一个异步的复制,从一个Mysql instace(称之为Master)复制到另一个Mysql instance(称之Slave).实现整个复制 ...

  3. mysql双一参数_MySQL 的双1设置-数据安全的关键参数(案例分享)

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  4. mysql主从字符集不一致_MySQL多字节字符集造成主从数据不一致问题

    问题产生线上一直有个历史遗留问题,最近DBA提了出来,所以跟了下代码,作了下简单分析,问题描述如下: 在master-slave的环境下,对master上的某个表中的数据插入,会导致master-sl ...

  5. mysql 触发器 本表_MySQL触发器处理本表数据

    关于MySQL的触发器,基本上每个Mysql教程里都有讲到,但是我发现那些教程里讲的都是如何处理其他表的数据.在MySQL中写触发器操作 关于MySQL的触发器,基本上每个Mysql教程里都有讲到,但 ...

  6. mysql between详解_MySQL中BETWEEN子句的用法实例详解

    这篇文章主要介绍了MySQL中BETWEEN子句的用法详解,是MySQL入门学习中的基础知识,需要的朋友可以参考下 可以使用IN子句来代替相结合的"大于等于和小于等于"的条件. 要 ...

  7. mysql C where语句_mysql – 在WHERE子句中使用substr的SELECT语句

    我这里有三个字段的样本表. TableA FieldA FieldB FieldC ====================================== 123XYZ456 XYZ John ...

  8. mysql read only参数_MySQL 参数解析 tx_read_only transaction_read_only

    参数 tx_read_only 或者 transaction_read_only 用于设置事务的访问模式,可设置为 OFF/ON,默认值为 OFF,表示事务可读,可写,设置为 ON 表示事务只读,不可 ...

  9. mysql 函数的参数_MySQL中的数值函数

    加减乘除(+.-.*./)均可用于数值计算. SELECT (1 + 1) / (1 * 2.2 - 3) 执行算术函数 单参数数值函数举例: acos(x), asin(x), atan(x), c ...

最新文章

  1. 运维的shell小编(6)
  2. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 Mixin 混合进行方法注入 )
  3. 如何避免面试中薪水要的太高或太低?
  4. 【Python基础】python使用python-docx操作word
  5. php篮球比赛,篮球数据API接口 - 【篮球比赛动画直播变化数据】API调用示例代码...
  6. 学习 Linux_01: 引导程序
  7. 数据全裸时代,你的隐私有多容易获取?
  8. leetcode - 22. 括号生成
  9. Java讲课笔记18:异常处理
  10. 手机logging什么意思_手机三轴稳定器的“三轴”是什么意思?
  11. CentOS 配置httpd使局域网能够正常訪问
  12. 芒果iOS开发之Swift教程01-Swift基础
  13. 如何测试电脑网速情况
  14. 03、单线通讯—SIF通讯协议(一线通)案例二
  15. WPS表格如何快速添加斜线表头
  16. ionic 配置java_ionic开发环境搭建
  17. 优化 WindowsXPSP2 系统服务项设置
  18. 静态背景下运动目标检测 matlab_动态拉伸、静态拉伸你做对了么?
  19. 2022-09-12 mysql语法分析实现
  20. 已解决 阿里云盘 应用网络状况不佳,扫码,用账号登录,用手机号登录都不可以

热门文章

  1. dbentry访问带密码的Access
  2. Linux 命令(138)—— nc 命令
  3. 经典算法——合并两个有序单向链表
  4. Sum All Odd Fibonacci Numbers-freecodecamp算法题目
  5. 用户画像之门店用户类型的体系
  6. 【HNOI2004】L语言
  7. swift学习笔记(四)关于类的继承
  8. 我的Android第一章
  9. 00-自测3. 数组元素循环右移问题
  10. 常用技巧性CSS:颜色渐变,截断英文单词,阴影文字.