Mybatis及Plus,SQL语句IN和OR的区别 用法
一、IN和OR的原理
1、in:in是把父查询表和子自查询表作hash连接;
2、or:or是对父查询表作loop循环,每次loop循环再对子查询表进行查询;
二、操作不同
1、in:in是把父查询表和子自查询表作hash连接;
2、or:or是对父查询表作loop循环,每次loop循环再对子查询表进行查询;
三、适合不同
1、in:in适合用于子查询表数据比父查询表数据多的情况;
2、or:or适合用于子查询表数据比父查询表数据少的情况;
四、执行效率不同
1、in:在没有索引的情况下,随着in后面的数据量越多,in的执行效率不会有太大的下降;
2、or:在没有索引的情况下,随着or后面的数据量越多,or的执行效率会有明显的下降;
五、SQL应用举例
SELECT COUNT(*) FROM health_goods g WHERE g.id IN (72,73,74);
SELECT COUNT(g.id) from health_goods g inner join health_goods_company gc on g.id = gc.goods_id WHERE gc.company_id = 1 AND g.id IN (75,76,77);
SELECT COUNT(*) FROM health_goods g WHERE g.id=72 OR g.id=73 OR g.id=74;
SELECT COUNT(g.id) from health_goods g inner join health_goods_company gc on g.id = gc.goods_id WHERE gc.company_id = 1 AND (g.id=72 OR g.id=73 OR g.id=74);
Mybatis中使用in查询:
Mybatis-Plus中使用in查询:
相关文章
- 为何CorelDRAW X8安装打开后提示“已停止工作”?
- 10万设计师好评的CDR最强插件,甩掉繁琐,拥抱简单
- 解决CDRX4X5X6X7下载安装失败的原因
- coreldraw2020安装包-coreldraw2020安装教程
- 设计师不一定知道的CorelDRAW X6 的那些功能续
- CDR X6,X7安装出现1406英文对话框提示解决办法
- 最新版平面设计、矢量设计软件CorelDRAW的安装与破解
- CDR X6破解版下载+教程 coreldraw x6官方中文版免费完整版
- 工业革命还是AI起义?aespa新曲《Dirty Work》今日炸场
- 「仅保留三天」8个新媒体人必备软件+3份精选资源