美文网首页
(转载)SQL中的等号(=)、IN、LIKE三者的比较及效率

(转载)SQL中的等号(=)、IN、LIKE三者的比较及效率

作者: Sam_6155 | 来源:发表于2019-11-02 16:23 被阅读0次

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/MTbaby/article/details/79860796
    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

    ————————————————
    版权声明:本文为CSDN博主「MTbaby」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/MTbaby/article/details/79860796

    相关文章

      网友评论

          本文标题:(转载)SQL中的等号(=)、IN、LIKE三者的比较及效率

          本文链接:https://www.haomeiwen.com/subject/lbqhbctx.html