当前位置:网站首页>The new colleague asked me what "where 1=1" means???
The new colleague asked me what "where 1=1" means???
2022-06-12 19:51:00 【Java collection】
When the new colleague came, he asked me where 1=1 What's interesting , It doesn't make sense , I smiled. . Today, let's explain .
where 1=1
Let's start with a piece of code
<select id="queryBookInfo" parameterType="com.ths.platform.entity.BookInfo" resultType="java.lang.Integer">
select count(id) from t_book t where 1=1
<if test="title !=null and title !='' ">
AND title = #{title}
</if>
<if test="author !=null and author !='' ">
AND author = #{author}
</if>
</select>
The above code is familiar , This is the total number of qualified queries . stay mybatis Used in if Tag judgment where Condition after clause , In order to prevent the first field from being empty, resulting in sql Report errors . you 're right , When multiple query conditions are encountered , Use where 1=1 It can easily solve the problem that our condition is empty , So that's how it's written Is there anything wrong with that? ?
Many people on the Internet say , This can cause performance problems , May invalidate the index , So let's measure it today , Will you not go . in addition , More similar interview questions , official account Java selected , reply java interview , Access to interview information , Support online question brushing anytime, anywhere .
Actually measured
title The field has been indexed , We go through EXPLAIN look down :
EXPLAIN SELECT * FROM t_book WHERE title = ' And on earth ';
EXPLAIN SELECT * FROM t_book WHERE 1=1 AND title = ' And on earth ';
Comparing the above two, we will find You can see possible_keys( Possible indexes ) and key( Actual index used ) All use the index for Retrieval .
Conclusion
where 1=1 I'll go with the index , Does not affect query efficiency , We wrote sql Orders will be mysql Analyze and optimize into your own processing instructions , In the process 1 = 1 Such meaningless conditions will be optimized . Use explain EXTENDED sql Proofread , Find out where1=1 Such conditions will be mysql Optimized by the optimizer .
So we're in mybatis You can change the writing , Because after all mysql The optimizer also takes time , Although it's gone , But when the amount of data is large , It will still have an impact , So we suggest that the code be written like this :
<select id="queryBookInfo" parameterType="com.ths.platform.entity.BookInfo" resultType="java.lang.Integer">
select count(*) from t_book t
<where>
<if test="title !=null and title !='' ">
title = #{title}
</if>
<if test="author !=null and author !='' ">
AND author = #{author}
</if>
</where>
</select>
We use it where Label substitution .
author : Su Shi _
https://juejin.cn/post/7030076565673213989
official account “Java selected ” The published content indicates the source of , All rights reserved ( Those whose copyright cannot be verified or whose source is not indicated all come from the Internet , Reprinted , The purpose of reprinting is to convey more information , The copyright belongs to the original author . If there is any infringement , Please contact the , The author will delete the first time !
Many people have asked recently , Is there any readers Communication group ! The way to join is simple , official account Java selected , reply “ Add group ”, You can join the group !
Java Interview questions ( Wechat applet ):3000+ The road test questions , contain Java Basics 、 Concurrent 、JVM、 Threads 、MQ series 、Redis、Spring series 、Elasticsearch、Docker、K8s、Flink、Spark、 Architecture design, etc , Brush questions online at any time !
------ Special recommendation ------
Special recommendation : Focus on the most cutting-edge information and technology sharing , Official account for preparing for overtaking on curves and various open source projects and efficient software ,「 Big coffee notes 」, Focus on finding good things , It's worth your attention . Click the official account card below to follow .
If the article helps , Click to see , Forward! !
边栏推荐
- [games101] class note 8 - shading (shading frequency, graphics pipeline, texture mapping)
- What is the difference between union and union all
- Continuously improve the overall performance of adaoracle Oracle Oracle
- 今晚7:00 | PhD Debate 自监督学习在推荐系统中的应用
- Demand and business model innovation - demand 3- demand engineering process
- User and group permissions
- easycode一键生成插件自定义模板
- The joint empowerment plan of Baidu PaddlePaddle large enterprise open innovation center was launched! Help Pudong to upgrade its industry intelligently
- Why can't fields with high duplicate values be indexed (such as gender fields)
- exec函数、shell的实现
猜你喜欢
Deep feature synthesis and genetic feature generation, comparison of two automatic feature generation strategies
基于微信电子书阅读小程序毕业设计毕设作品(7)中期检查报告
运算器的基本结构
QT -- how to get the contents of selected cells in qtableview
Wechat e-book reading applet graduation design work (6) opening defense ppt
Download and configuration of nuitka packaging tutorial
2 R programming
Shell programming regular expressions and metacharacters
Promise to solve hell function calls can be used infinitely
Demand and business model innovation-4-strategy
随机推荐
Microsoft Word 教程,如何在 Word 中插入页眉或页脚?
const
1. Getting to know R
模块八作业
Detailed explanation of SQL exists usage
What is a federated index?
Torch network model is converted to onnx format and visualized
Reading small program graduation design based on wechat e-book (5) assignment
Are you confused about choosing a low code platform? Follow these three steps
Demand and business model analysis -6- five topics
Demand and business model innovation - demand 2- demand basis
Microsoft Word 教程,如何在 Word 中插入页码、目录?
First build green, then build city
torch 网络模型转换onnx格式,并可视化
Compilation of programs
【刷题笔记】线段树
What is a hash index?
Pyinstaller packaging tutorial packaging resource files
What is data driven
[splishsplash] custom exporter