一起去大厂系列深入理解MySQL中where 1 = 1的用处

Posted 来老铁干了这碗代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起去大厂系列深入理解MySQL中where 1 = 1的用处相关的知识,希望对你有一定的参考价值。

首先,明白一个前提条件:

where 1 = 1;   --永远为真

也就是说:

select * from student;    

等同于: 

select * from student where 1 = 1;

看起来,where 1 = 1就是一个永远为真的条件,没有什么用。 但当我们加上动态SQL语句后,结果就不同了:


没有where 1 = 1

select * from student
where
	and condition1 
	and condition2 
	and ...

当所有的condition都为false时,该语句就变成了:

select * from student where;

这个SQL语句在语法上是错误的。


where 1 = 1

select * from student
where 1 = 1
	and condition1 
	and condition2 
	and ...

当所有的condition都为false时,该语句就变成了:

select * from student where 1 = 1;

由于where语句后的条件为true,因此该语句在逻辑上等同于

select * from student;

总结

where 1 = 1语句用于动态SQL语句中,是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。


有帮助就点个赞吧!

以上是关于一起去大厂系列深入理解MySQL中where 1 = 1的用处的主要内容,如果未能解决你的问题,请参考以下文章

MySQL之where使用

MySQL之where使用

深入理解NIO

一起去大厂系列什么是回表查询?怎么优化回表查询?

一起去大厂系列什么是回表查询?怎么优化回表查询?

深入理解C#泛型:new与where关键字全解析