1. 程式人生 > >關於資料庫查詢語句中的where 1=1條件的應用解析

關於資料庫查詢語句中的where 1=1條件的應用解析

where 1=1有什麼用?在SQL語言中,寫這麼一句話就跟沒寫一樣。

select * from table1 where 1=1與select * from table1完全沒有區別,其目的就只有一個,where 的條件為永真,得到的結果就是未加約束條件的。

其他的寫法有:1<>2,'a'='a','a'<>'b'

此外,在不定數量查詢條件情況下,1=1可以很方便的規範語句。

在java或其他語言中使用查詢條件不定可以加入條件where 1=1;

不加的話要用下面的複雜語句:
if(!name.equals("")){
sql=sql+"name='"+name+"'";
}
if(!age.equals("")){
sql=sql+"age'"+age+"'";
}
if(!height.equals("")){
sql=sql+"height='"+height+"'";
}
if(!weight.equals("")){
sql=sql+"weight='"+weight+"'";
}

if @a is not null
@[email protected] + " where a=' + @a
if @b is not null
這裡你怎麼寫?要不要加where 或直接用 and ?,你這裡還要對@a是否為空進行檢測

用上 where 1=1 之後,就不存在這樣的問題, 條件是 and 就直接and ,是or就直接接 or

拷貝表
create   table_name   as   select   *   from   Source_table   where   1=1;

複製表結構
create   table_name   as   select   *   from   Source_table   where   1 <> 1;