|
为了方便下面的测试,我们先重新创建一张数据表,请执行以下语句创建表结构:
- DROP TABLE IF EXISTS `user`;
- CREATE TABLE `user` (
- `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
- `age` tinyint COMMENT '年龄',
- `name` VARCHAR(10) COMMENT '姓名',
- `sex` CHAR COMMENT '性别',
- `createtime` int(11) NOT NULL COMMENT '添加时间',
- PRIMARY KEY (`id`) USING BTREE
- ) ENGINE = InnoDB CHARACTER SET = utf8;
复制代码 再执行以下语句添加数据:
- INSERT INTO `user` VALUES (1, 18,'tom', '男', 1647102638);
- INSERT INTO `user` VALUES (2, null, 'berry','女', 1647102638);
- INSERT INTO `user` VALUES (3, 20, 'marry','女', 1647228362);
- INSERT INTO `user` VALUES (4, 33, 'ross','女', 1647228526);
- INSERT INTO `user` VALUES (5, 22, 'julie','男',1647326334);
复制代码 执行后的数据表数据如下:
好了,我们现在开始讲解where条件的使用方法。
在前面我们已经列出过where的全部语法,本文也只能代表性的讲解几个,其余的大家自行测试即可。
第一条语句--and:
- select name from user where age=33 and sex='女';
复制代码 语句解释:
- 在user表中查询name字段,查询条件是:age=33且sex=女。
复制代码 查询结果如下:
第二条语句--in
- select name from user where age in (20,22,33);
复制代码 语句解释:
- 在user表中查询name字段,条件是:age为20或22或33.
复制代码 执行结果如下:
第三条语句--between..and...
- select name from user where age between 22 and 33;
复制代码 语句解释:
- 在user表中查询name字段,条件是:年龄在22和33之间,包括22和33。等同于22<=age<=33.
复制代码 执行结果如下:
第四条语句--is null
- select name from user where age is null;
复制代码 语句解释:
- 在user表中查询name字段,条件是:age为null。
复制代码
执行结果如下:
第五条语句--like
- select * from user where name like '%rry';
复制代码 语句解释:
- 在user表中查询所有数据,条件是:name的后三个字母为rry
复制代码 执行结果如下:
ok,我们就演示以上5条语句即可,其它条件大家自行测试吧。
下面我们再次列出where的全部语法,如下:
- = 等于
- <> 不等于
- != 不等于
- < 小于
- > 大于
- !< 不小于
- !> 不大于
- <= 小于等于
- >= 大于等于
- 用法:
- 例如:WHERE 列名 = 10;
复制代码- in 在范围内 例如:WHERE 列名 in (值1,值2)
- not in 不在范围内 例如:WHERE 列名 not in (值1,值2)
- between..and... 在之间 例如 WHERE 列名 between 5 and 10;
- not between...and... 不在之间 例如 WHERE 列名 not between 5 and 10;
- is null 为空 例如 WHERE 列名 is null;
- is not null 不为空 例如 WHERE 列名 is not null;
复制代码- and和or --多条件查询,例如:where 列名1 = 值1 and 列名2 <= 值2;
- like 通配查询,包括%和_两种。
- %匹配任何字符0次或多次。
- _匹配1个字符。
- 举个栗子:
- WHERE 列名 like 'Fish%'; --表示在指定列的所有数据中匹配前面是Fish的数据。
- WHERE 列名 like '_inch'; --表示在指定列的所有数据中匹配任意一个字符+inch的数据。
- 注意:使用通配查询的效率不高,应当尽可能的不用。
复制代码
|
|