mysql 关键词 in 和 or的区别

你所有的忧伤,都来自于你的余额。

 

MySQL中的IN和OR是两个常见的操作符,虽然它们都可以用于选择数据,但是它们的实现方式有很大的不同。

SELECT * FROM table WHERE column1 IN (val1, val2, val3);
SELECT * FROM table WHERE column1 = val1 OR column1 = val2 OR column1 = val3;

 

区别:

  1、操作不同    

    in:in是把父查询表和子自查询表作hash连接。
    or:or是对父查询表作loop循环,每次loop循环再对子查询表进行查询。

  2、使用范围不同

    in:in适合用于子查询表数据比父查询表数据多的情况。
    or:or适合用于子查询表数据比父查询表数据少的情况。

  3、执行效率不同    

    in:在没有索引的情况下,随着in后面的数据量越多,in的执行效率不会有太大的下降。
    or:在没有索引的情况下,随着or后面的数据量越多,or的执行效率会有明显的下降。

posted @ 2022-08-16 08:59  方达达  阅读(99)  评论(0编辑  收藏  举报