where 1=1
sql:
where 1=1
1=1 永真, 1<>1 永假。
1<>1 的用处:
用于只取结构不取数据的场合
例如:
拷贝表
create table_name as select * from Source_table where 1=1;
复制表结构
create table_name as select * from Source_table where 1 <> 1;
1=1的用处:
用于动态SQL
例如:
Stringbuffer sql="select * from a where 1=1
if(type!= null){
sql.append("and type="+type")
}
if(name != null){
sql.append(" and name="+name);
}
如果没有 where 1= 1;
Stringbuffer sql="select * from a
if(type!= null){
sql.append("where type="+type");
}else{
}
if(name != null){
sql.append(" and name="+name);
}
就需要很复杂的判断查询条件语句为不为空,处理where 这词。