【SQL】SQL中的IN方法:查询多种状态值

来源:互联网 发布:云计算细分市场格局 编辑:程序博客网 时间:2024/06/07 03:32

一、起因

因为要查询两种状态的值,如果用普通的查询,需要查两次,再把两次查询的值放到一个集合中,再去重,这样查找非常麻烦,所以决定优化,使用SQL中的IN查询:

SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)

二、解决办法

这里,我要查询status=0和status=1的两种状态下的值;

SELECT * FROM jxdx_leave lWHERE 1=1 AND l.deleted=0AND l.`status` IN ('0','1');

这里写图片描述

这里的status带了引号,这是因为Navicat自动提示给的,就先用了;可以查到;后面括号内的0和1也都有引号,可以查到;

三、去掉引号:

SELECT * FROM jxdx_leave lWHERE 1=1 AND l.deleted=0AND l.status IN (0,1);

这里,我IN括号内的内容不带引号也是可以查到的;查到的内容和上面的一样,但是,在Mybatis中,带引号是查不到的,因为status是int类型,虽然Navicat帮我们去掉了引号,但是,还是得按照规矩来,是varchar类型用引号,是int类型,用整数,就一个字,稳;

欢迎关注我的公众号:
【幕桥社区】
这里写图片描述

原创粉丝点击