经常看到SQL语句中的where 1=1是啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经常看到SQL语句中的where 1=1是啥意思?相关的知识,希望对你有一定的参考价值。
参考技术A 这时我们的查询语句就是 select * from table where starttime =2015-04-05 and endtime = 2015-04-07,查询语句正确但是如果条件都不满足的话,语句就变成了 select * from table where ,这时候查询就会报错。
当两个条件成立的时候 select * from table where 1=1 and starttime =2015-04-05 and endtime = 2015-04-07, 语句正确
当两个条件不满足时 select * from table where 1=1 ,语句正确,会返回table表的所有数据
mybatis动态拼接条件的技巧 where 1=1 或者where标签
<select id="selectByStudentSelective" resultMap="BaseResultMap" parameterType="com.homejim.mybatis.entity.Student">
select
<include refid="Base_Column_List" />
from student
where 1=1
<if test="name != null and name !=''">
and name like concat('%', #name, '%')
</if>
<if test="sex != null">
and sex=#sex
</if>
</select>
mybatis动态拼接条件的技巧:
技巧一:where 1=1 ,此时,就可以根据name,sex是否为空就可以查询了
技巧二:放在where标签里面
<select id="selectByStudentSelective" resultMap="BaseResultMap" parameterType="com.homejim.mybatis.entity.Student">
select
<include refid="Base_Column_List" />
from student
< where>
<if test="name != null and name !=''">
and name like concat('%', #name, '%')
</if>
<if test="sex != null">
and sex=#sex
</if>
</where>
</select>
参考1
参考2
以上是关于经常看到SQL语句中的where 1=1是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章