where 1=1 是什麼鬼?
這段程式碼應該是由程式(例如Java)中生成的,where條件中 1=1 之後的條件是透過 if 塊動態變化的。例如:
String sql=
"select * from table_name where 1=1";
if( conditon 1) {
sql=sql+
" and var2=value2";
}
if(conditon 2) {
sql=sql+
" and var3=value3";
}
where 1=1 是為了避免where 關鍵字後面的第一個詞直接就是 “and”而導致語法錯誤。
動態SQL中連線AND條件
where 1=1 是為了避免where 關鍵字後面的第一個詞直接就是 “and”而導致語法錯誤。
where後面總要有語句,加上了1=1後就可以保證語法不會出錯!
select * from table where 1=1
因為table中根本就沒有名稱為1的欄位,所以該SQL等效於select * from table,
這個SQL語句很明顯是全表掃描,需要大量的IO操作,資料量越大越慢,
建議查詢時增加必輸項,即where 1=1後面追加一些常用的必選條件,並且將這些必選條件建立適當的索引,效率會大大提高
「複製表」
create table table_name as select * from Source_table where 1=1;
「複製表結構」
create table table_name as select * from Source_table where 1 <> 1;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2763003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- where 1=1有什麼用?
- 為什麼要用where 1=1
- UILayer是什麼鬼UI
- MySQL-where 1=1MySql
- pyc是個什麼鬼?
- cross-env 是什麼鬼ROS
- Docker(1)- 什麼是 DockerDocker
- 1 什麼是Zookeeper 能幹什麼
- Petya到底是個什麼鬼
- [譯] JavaScript:回撥是什麼鬼?JavaScript
- Mybatis where 1=1 動態sql問題MyBatisSQL
- Spark RPC 到底是個什麼鬼?SparkRPC
- FastThreadLocal 是什麼鬼?吊打 ThreadLocal 的存在!!ASTthread
- Django-rest-framework 是個什麼鬼?DjangoRESTFramework
- 節流函式throttle是什麼鬼?函式
- 布隆過濾器是什麼鬼?有什麼用?過濾器
- ">/dev/null 2>&1 "是什麼意思devNull
- 什麼是前奏設計 1/2
- 什麼是 T+1 資料?
- 1、Swing簡介:Swing是什麼?
- 走進Task(1):什麼是Task
- webgl入門(1)-什麼是webglWeb
- 談談NAT:什麼?全球IP和私有IP是什麼鬼?
- 如何通俗解釋Docker是什麼_1Docker
- Protocol Buffers 系列 (1) - 什麼是Protocol Buffers?Protocol
- 0的階乘為什麼是1
- C#中泛型約束(where)是什麼?C#泛型
- Spring 5 core 中的 @NonNull 是個什麼鬼?!SpringNull
- Python 中的 sys.argv 是個什麼鬼?Python
- 阿里雲釋出的數加是什麼鬼阿里
- 【Learning eBPF-1】什麼是 eBPF?為什麼它很吊?eBPF
- 蘋果的 M1 Ultra 是什麼?蘋果
- 【轉】LINQ to SQL語句(1)之WhereSQL
- Java,你告訴我 fail-fast 是什麼鬼?JavaAIAST
- nc反彈以及中 &>、0>&1是什麼意思
- iOS BLE 開發小記[1] CoreBluetooth 是什麼iOS
- 細讀《你不知道的JavaScript·上卷》1-1 作用域是什麼?JavaScript
- [譯] Bob,函數語言程式設計是什麼鬼?函數程式設計