美文网首页
经常看到SQL语句中的where 1=1是什么意思?

经常看到SQL语句中的where 1=1是什么意思?

作者: liuliuzo | 来源:发表于2020-02-04 13:06 被阅读0次

介绍

这时我们的查询语句就是 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中的使用

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是什么意思?

      本文链接:https://www.haomeiwen.com/subject/nijrxhtx.html