您的位置:首页 > 数据库

SQL语句中where 1=1的基本用法

2016-04-25 16:45 323 查看
SQL语句中where 1=1的基本用法 转载

分类: 数据库

与where 1=1等效的类似语句有1<>2,’a’=’a’,’a’<>’b’,其目的是where的条件为永真,得到的结果就是未加约束条件的。那么where 1=1 有什么用处呢?

使用一 拼接SQL语句

一个简单拼接SQL语句的例子:

String sql = select * from table student where 1=1;

StringBuffer buffer = new StringBuffer();

buffer.append(sql);

if (null != name && !”“.equals(name)) {

buffer.append(“and name = ” + name);

}

if (null != phone && !”“.equals(phone)) {

buffer.append(“and phone like ‘” + phone + “’”);

}

ibatis中的动态语句的拼接与其原理相似,也可以加1=1。

若不使用1=1,拼接会有多麻烦呢?String sql = select * from table student where;这个语句还在,那么如果三个条件都是空呢?where就是光秃秃了。再设想,若一个空,一个不空或者两个都不空,拼接的语句就不一样了。这只是两个条件,要是更多的条件呢?体会到1=1的用处了吧。我们可以发现 or 1 = 1拼在后面可以恒使条件成立。

使用二 拷贝表或复制表结构

拷贝表

create student_bak as select * from student where 1=1;

复制表结构

create student_bak as select * from student where 1<>1;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 sql