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;
参考博客:https://www.accessoft.com/article-show.asp?id=6912
最后更新:2017-04-03 07:57:24
上一篇:
Spring中BeanUtils.copyProperties方法测试
下一篇:
oracle中is null到底判断的是什么
Android开发6——布局中的wrap_content和fill_parent以及match_parent
PostgreSQL 11 preview - compress method 接口 - 暨开放接口系列
二甲基四苯基二硅氧烷 IOTA 259
一家无名公司几乎把整个互联网都告上了法庭
POJ 1877 Flooded!
Java中的HashMap和ConcurrentHashMap的并发性能测试
乔布斯崇拜索尼?揭秘科技大佬的偶像
江辉老师分享“自然语言处理的通用深度学习方法”
【Android 】【Monkey Demons】 针对性的进行稳定性测试
HDU1235统计同成绩学生人数