用这两个where的技巧在哪里,该什么时候用,大家能给点例子,并且介绍一下技巧!

解决方案 »

  1.   

    where 1=1 &P_where其中P_where 是参数!如果不加1=1参数p_where为null时就会出错,加上1=1就无论如何都能执行不出错。1<>1也是同理。
      

  2.   

    1=1 &P_where 应该写成P_where is not null,这样比较规范
      

  3.   

    1=1 &P_where 应该写成P_where is not null,这样比较规范不是这样的意思,&P_where是另一个条件,是运行时才知道的条件,其实等于动态sql。
    &P_where 肯定是:and conditions
      

  4.   

    组合查询时用的。
    比如select * from table_name where &condition
    &condition是一个变量,动态生成的,比如有两个查询条件,id和name。比如用户选择了id和name,那么语句就是select * from table_name where id='XXX' and name='XXX'。但是如果用户不选择查询条件,默认查出所有的数据。语句就变成了select * from table_name where 很明显不对嘛,为了保证正确还得考虑where是不是应该存在,麻烦!所以我们就需要增加一个始终存在的条件,如1=1。select * from table_name where 1=1 &condition。这样&condition就可以用 and 字段='XXX'组合。没有条件时就是select * from table_name where 1=1。
      

  5.   

    select tbl_name,tbl_desc from tbl_test where 1=1 +"and tbl_name='abc'"
    +"and tbl_name='abc'",做多条件查询时假如没选择条件,就变成了select tbl_name,tbl_desc from tbl_test where 1=1,如果没1=1便成了select tbl_name,tbl_desc from tbl_test where 是会报错的。
      

  6.   

    建临时表用
    create table table_temp tablespace tbs_temp as
    select * from table_ori where 1<>1
      

  7.   

    拷贝表
    create table_name as select * from Source_table where 1=1;复制表结构
    create table_name as select * from Source_table where 1<>1;
      

  8.   

    1=1永真
    1<>1永假对于有些查询会限制你必须输入查询条件但确实无相关条件的时候就可以使用这两个来代替
      

  9.   

    1=1我们用来就是来加载动态SQL的
      

  10.   

    同意楼上的
    对于有些查询
    尤其是动态拼凑的SQL语句
    where 子句先用一个 1=1或者1<>1
    然后在拼凑..
      

  11.   

    ibatis中就经常有动态SQL,where 子句可先用一个 1=1或者1<>1,
    比如<select id="testid"parameterClass="java.util.HashMap"resultClass="java.util.HashMap">
    <![CDATA[
    select 
    column1,
    column2,
    column3
    from
    table
    where
    1=1                
    ]]>
    <dynamic>
    <isNotEmpty prepend="and"  property="column1">
    <![CDATA[
    column1 = #column1#
    ]]>
    </isNotEmpty>
    </dynamic>
    </select>
      

  12.   

    1=1这样的条件永远成立,就是检索全部数据;1<>1永远不成立,就是只要表结构,不要数据
      

  13.   

    ——我看啊,还是这位仁兄有点水平,其他的就……
    junval(Junval Shi) ( ) 信誉:100    Blog 
    拷贝表
    create table_name as select * from Source_table where 1=1;复制表结构
    create table_name as select * from Source_table where 1<>1;
      

  14.   

    select   tbl_name,tbl_desc   from   tbl_test   where   1=1   + "and   tbl_name= 'abc ' " 
    + "and   tbl_name= 'abc ' ",其实这个题很好  就是回答有点含糊  其实有着一句就够了 至于1<>1和这个是对立的  说多了反而糊涂