看别人的代码中发现他的SQL语句where子句这么拼的: 
where 1=1 and BH like '电工%'
求问 1=1 在此的作用是?

解决方案 »

  1.   

    没用,仅仅是为了拼接WHERE子句方便。
      

  2.   

    那直接where BH like …… 不就行了吗  何必多此一举呢?
      

  3.   

    这个是别人为了生成SQL语句方便才加上的...
    比如:
    if(bh != null || "".equals(bh)){
      sql = sql + " and bh like ....";
    }
    if(bg != null || "".equals(bg)){
      sql = sql + " and bg like ....";
    }
    如果不加1=1...那你也不知道哪个是第一个条件...那还要每句都去判断是不是第一个条件..如果不是就加上 
    " and "...如果是则不加上 " and "
    这个也是为了程序写起来简洁一点...
      

  4.   

    因为在代码中 不确定会不会有后面的多个条件(BH like '电工%')  所以这里添加一个1=1 方便后面添加条件
    比如:string sql = "select * from t1 where 1=1";
    if(a != '')
        sql+=" and a=a ";
    if(b != '')
        sql+=" and b=b ";因为这里不确定a b是不是为空什么的  如果sql里面没添加where 1=1 后面的判断如何来添加、怎么拼接呢?
      

  5.   

    呃...上面的if条件写错了...应该是&&....这个只是表达个意思
      

  6.   

    不确定是否在后面条件时,用1=1方便串接sql语句。