经常看到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是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中的groupby是啥意思?

SQL语句中的t.是啥意思,例如 select *from cityinfo t where t

sql语句中COUNT(1)是啥意思?

mysql语句where条件中的是啥意思

sql语句中caes是啥意思

sql中like是啥意思?