“where 1 = 1”的用法主要是为了保证在多条件查询的情况下,sql语句能够正确的运行。
比如现有一条待后续拼接的查询语句“select * from table where ”,其中where后边的语句只有满足一定的判断条件才打印,
例如后边跟有代码:
if(判断条件) {
name = "+name+";
}
当判断条件为true时,上边的sql语句拼接为select * from table where name = “小明”;这时该语句能够正常执行。
但是当判断条件为false时,上边的sql语句就只能是select * from table where;这样的语句会报语法错误。
因此,在where后边添加 1 = 1,可以有效避免该错误的发生。
“where 1 = 0”,永远是false,用于获取表的结构,不获取表中的数据。
例如:create table newtable as select * from oldtable where 1 = 0;//新建一个与oldtable的表结构相同的表newtable。
--本文参考junyuz的博客,地址是http://www.cnblogs.com/junyuz/archive/2011/03/10/1979646.html