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統計同成績學生人數