SQL中的等号(=)、IN、LIKE三者的比较。

SQL中的等号(=)、IN、LIKE三者的比较。

SQL 中等号、IN、LIKE 三者都可以用来进行数据匹配 。但三者并不相同。

等号(=):是用来查找与单个值匹配的所有数据;

IN :是 用来查找 与多个值匹配的所有数据;

LIKE:用来查找与一个模式匹配的所有数据。

一、等号(=)
确切知道所要查找的内容,且为单一值时,可以使用等号运算符来进行数据比较。等号运算符中可以使用字符串、日期或数字。例如,比如想要查询字段为name,值为“MTbaby”的工作人员,可以使用等号进行匹配:

SELECT name, sex, id, salary FROM table_name WHERE name='MTbaby';
1
查询结果:

name    sex    id    salary
MTbaby    女    1001    3000.00
二、IN
当确切知道所要查找的内容,且为多个值时,可以使用 IN 子句来进行数据比较。IN 子句中也可以使用数字、字符串或日期。例如,查找名为“MTbaby”、“abboter”、“小明”的工作人员,可以使用 IN 子句进行匹配:

SELECT name, sex, id, salary FROM table_name WHERE name IN ("MTbaby","abboter","小明");
1
查询结果:

name    sex    id    salary
MTbaby    女    1001    3000.00
abboter    男    1002    5000.00
小明    男    1003    4000.00
另外:如果a.depart=”” or a.depart=”“…这个链接条件很多的话, 会存在效率问题, 此时IN的优势会体现出来; 查看下执行计划能够更详细的分析出你想要的结果;

三、LIKE 子句
  当无法确切知道所要查找的值,而是知道所要查找的数据符合的模式时,可以使用LIKE 子句进行匹配。一般来说,LIKE 子句仅在字符串类型时使用,有些系统也支持在日期数据中使用,但对数字类型数据是不能使用 LIKE 子句的。例如,查找名字中都包含汉字“明”的工作人员,可以使用 LIKE 子句进行匹配:

SELECT name, sex, id, salary FROM table_name WHERE name LIKE  '%明%';    
1
查询结果:

name    sex    id    salary
刘明    女    1005    3000.00
王明亲    男    1007    5000.00
需要注意的是,通配符只有在 LIKE 子句中使用时才具有通配符的含义。不在 LIKE子句中使用时, 就不具有特殊的含义,仅表示其本身的值。

如果我把上述LIKE语句改成下面这个:

SELECT name, sex, id, salary FROM table_name WHERE name = '%明%';
1
则查询结果为空:

name    sex    id    salary

--------------------- 
作者:MTbaby 
来源:CSDN 
原文:https://blog.csdn.net/MTbaby/article/details/79860796 
版权声明:本文为博主原创文章,转载请附上博文链接!

controller层:

String ids = checks.trim() ;
        if(ids.length()>0){
            ids = "("+ ids +")";
            foService.batchProcess(ids);
        }

mapper:

<update id="batchProcess" parameterType="java.lang.String">
        update TB_ERP_FO_DELIVERY
        SET P_STATUS = 1
        where ID IN ${ids}
    </update>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值