首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL参数放在where前后的区别

本博客记录一个细节,在使用sql left join时候,参数放在left join后面当条件,还是放在where后的区别 给出两条SQL: tt.book_type = ‘TIPS_TYPE’,放在...tt on tt.book_code = tc.tips_flag and tt.book_type = 'TIPS_TYPE' tt.book_type = ‘TIPS_TYPE’,放在where...tt.book_name tipsType from t_tips_config tc left join t_book tt on tt.book_code = tc.tips_flag where...tt.book_type = 'TIPS_TYPE' 这两种情况意义完全不一样的,前者如果t_book没有book_type = 'TIPS_TYPE’的数据,整条SQL还是可以查到数据的,只是t_book...的参数没查到而已,后者,一旦出现book_type = 'TIPS_TYPE’没有数据,那就整条SQL都查不到数据,这样是不合理的,因为业务需要查出t_tips_config的表,不然就不会用左连接了

62030

2分钟带你快速了解什么是MyBatisPlus及其核心功能!

二、核心功能1、条件构造器1)MyBatisPlus支持各种复杂的where条件,满足日常开发的所有需求。...3、尽量使用 LambdaQueryWrapper和 LambdaUpdateWrapper,避免硬编码2、自定义SQL可以使用MyBatisPlus的Wrapper来构建复杂的where条件,然后自己定义...步骤如下:当SQL语句的where条件之外的部分,没有办法利用MP更方便地实现时(非常规,只能拼接,违背了企业开发规范),使用自定义SQL。...3.1 IService的Lambda查询1)需求:实现一个根据复杂条件查询用户的接口,查询条件如下name: 用户名关键字,可以为status: 用户状态,可以为.minBalance: 最小余额...,可以为. maxBalance: 最大余额,可以为2)回顾使用MyBatis的SQL写法3)使用MyBatisPlus3.2 lService的Lambda更新1)需求:改造根据id修改用户余额的接口

10710
您找到你想要的搜索结果了吗?
是的
没有找到

杀手SQL- 一条关于 'Not in' SQL 的优化案例

我们看到,此时在没有非限制的情况下,也走了hash join anti. 这个特性, 可通过优化器参数控制。...in与以上三种写法的区别是:not in 是会排斥值。...对于未上线系统,通过前期的SQL审核管控,将80%的SQL问题消灭在萌生阶段,对于线上运行系统,发现和解决潜在的性能问题,做到提前预防,防患于未然。...SQL审核产品工具 - z3 云和恩墨基于Oracle数据库的SQL审核产品工具 - z3 ,通过内置的算法引擎,定制的抓取数据库中执行的SQL及其详细数据,通过过滤分析,进行量化的积分趋势展现,并将...z3产品服务于软件开发的全生命周期,在应用设计阶段通过审核,对不合理的表结构做变更,开发测试阶段对SQL质量严格把关,并在系统发布后进行SQL扫描,帮助DBA快速发现系统隐患及根源。

61760

【Kotlin】扩展函数 ② ( 扩展属性 | 为类型定义扩展函数 | 使用 infix 关键字修饰单个参数扩展函数的简略写法 )

文章目录 一、扩展属性 二、类扩展 三、使用 infix 关键字修饰单个参数扩展函数的简略写法 一、扩展属性 ---- 上一篇博客 【Kotlin】扩展函数 ( 扩展函数简介 | 为 Any 超类定义扩展函数...; 注意下面的调用细节 : 如果定义的 扩展函数 是 为 非类型定义的 , 类型变量 想要调用该 扩展函数 , 在调用时使用 " ?...." 进行调用即可 ; 类型实例对象?....非类型扩展函数 如果定义的 扩展函数 是为 类型定义的 , 类型变量 想要调用该 扩展函数 , 在调用时直接使用 " . " 进行调用即可 ; 类型实例对象.类型扩展函数 代码示例...123abc this = null, string = abc, 接收者为 abc 三、使用 infix 关键字修饰单个参数扩展函数的简略写法 ---- 如果 扩展函数 只有 一个参数 , 并且在

1.8K30

一千个不用 Null 的理由

很多人员都以为not null 需要更多空间,其实这不是重点。 重点是很多程序员觉得NULL在开发中不用去判断插入数据,写sql语句的时候更方便快捷。 2、是不是以讹传讹?...Mysql难以优化引用列查询,它会使索引、索引统计和值更加复杂。列需要更多的存储空间,还需要mysql内部进行特殊处理。...列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引。 —— 出自《高性能mysql第二版》 照此分析,还真不是以讹传讹,这是有理论依据和出处的。...(3)NULL值在timestamp类型下容易出问题,特别是没有启用参数explicit_defaults_for_timestamp (4)NOT IN、!...http://bit.ly/2u3GKZI [2] 优化 SQL 查询:如何写出高性能SQL语句 http://bit.ly/2t2ehng [3] 或许你不知道的10条SQL技巧 https://mp.weixin.qq.com

1.2K60

一千个不用 Null 的理由

很多人员都以为not null 需要更多空间,其实这不是重点。 重点是很多程序员觉得NULL在开发中不用去判断插入数据,写sql语句的时候更方便快捷。 2、是不是以讹传讹?...Mysql难以优化引用列查询,它会使索引、索引统计和值更加复杂。列需要更多的存储空间,还需要mysql内部进行特殊处理。...列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引。 —— 出自《高性能mysql第二版》 照此分析,还真不是以讹传讹,这是有理论依据和出处的。...NULL值在timestamp类型下容易出问题,特别是没有启用参数explicit_defaults_for_timestamp NOT IN、!...http://bit.ly/2u3GKZI [2] 优化 SQL 查询:如何写出高性能SQL语句 http://bit.ly/2t2ehng [3] 或许你不知道的10条SQL技巧 https://mp.weixin.qq.com

44930

不要再用where 1=1了,有更好的写法

背景 刚入行的同学,看到在SQL语句中出现where 1 = 1这样的条件可能会有所困惑,而长时间这样使用的朋友可能又习以为常。 那么,你是否还记得当初为什么要这样写?是否有性能问题?...where 1=1的作用 如果要问在SQL语句的where条件中多加1=1目的是什么,很简单:使得where条件语句永远为真。...b.equals("")){ sql += "and b='"+b+"'"; } 在上述语句拼写时,使用where 1=1,当b不等于时,可以直接拼接“and”语句,而不会导致语法错误。...='' "> AND u.user_no = #{userNo} 这样,在查询数据比较大的情况下,减少MySQL为了优化1=1这样的条件而损失的性能...小结 本文我们从习以为常的where 1=1使用聊起,聊了它的使用场景、MySQL对其优化、以及延伸出来的where 11的使用,同时基于常见的Mybatis框架,如何进一步改进。

56110

【框架】117:mybatis之动态sql

②动态sql的编写 if标签用以判断用户名是否为: 如果不为并且不是空字符串,将模糊查询语句拼接到sql中。 反之,只需要执行查询男性用户语句。...①案例分析 where-if标签和上面的when的不同在于: where-if是只要满足条件就执行。 when是只执行最先满足的。 ②动态sql的编写 如果用户名不为,则拼接模糊查询语句。...该方法就有一个问题,我们传递的参数user中,只设置了username属性,其它都为。 这样的话,数据库中其它属性也变成null了。 如何有选择性的修改?...①案例分析 普通修改等于是将user中的每一个属性都做出了修改,所以为null的属性也就修改成了null。 要解决这个问题,动态拼接sql时判断即可。...使用set-if标签,修改数据时就会发现只修改参数中不为的属性了,其它属性不变。 五、动态sql之foreach语句 案例:根据多个id查询对应的用户 ?

66620

一千个不用 Null 的理由

很多人员都以为not null 需要更多空间,其实这不是重点。 重点是很多程序员觉得NULL在开发中不用去判断插入数据,写sql语句的时候更方便快捷。 2、是不是以讹传讹?...Mysql难以优化引用列查询,它会使索引、索引统计和值更加复杂。列需要更多的存储空间,还需要mysql内部进行特殊处理。...列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引。 —— 出自《高性能mysql第二版》 照此分析,还真不是以讹传讹,这是有理论依据和出处的。...(3)NULL值在timestamp类型下容易出问题,特别是没有启用参数explicit_defaults_for_timestamp (4)NOT IN、!...http://bit.ly/2u3GKZI [2] 优化 SQL 查询:如何写出高性能SQL语句 http://bit.ly/2t2ehng [3] 或许你不知道的10条SQL技巧 https://mp.weixin.qq.com

47910
领券