面試被問where 1=1 ,到底是個什麼鬼?
阿新 • • 發佈:2021-01-24
技術標籤:hashtablerelativelayoutsmstwitterinternet
點選上方“碼農突圍”,馬上關注
這裡是碼農充電第一站,回覆“666”,獲取一份專屬大禮包
真愛,請設定“星標”或點個“在看”
作者:三哥
cloud.tencent.com/developer/article/1475146
這段程式碼應該是由程式(例如Java)中生成的,where條件中 1=1 之後的條件是通過 if 塊動態變化的。例如:
Stringsql="select*fromtable_namewhere1=1"; if(conditon1){ sql=sql+"andvar2=value2"; } if(conditon2){ sql=sql+"andvar3=value3"; }
where 1=1 是為了避免where 關鍵字後面的第一個詞直接就是 “and”而導致語法錯誤。
動態SQL中連線AND條件
where 1=1 是為了避免where 關鍵字後面的第一個詞直接就是 “and”而導致語法錯誤。
where後面總要有語句,加上了1=1後就可以保證語法不會出錯!
select*fromtablewhere1=1
因為table中根本就沒有名稱為1的欄位,所以該SQL等效於select * from table
,這個SQL語句很明顯是全表掃描,需要大量的IO操作,資料量越大越慢,
建議查詢時增加必輸項,即where 1=1後面追加一些常用的必選條件,並且將這些必選條件建立適當的索引,效率會大大提高
拷貝表
createtabletable_nameasselect*fromSource_tablewhere1=1;
複製表結構
createtabletable_nameasselect*fromSource_tablewhere1<>1;
版權申明:內容來源網路,版權歸原創者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除並表示歉意。祝願每一位讀者生活愉快!謝謝!
最近有有不少老鐵在後臺留言說,想進大廠,但是演算法不好。最近我整理了一份刷題實錄,這份刷題實錄,也讓我進了心儀的大廠。現在開放分享給大家。希望對大家有所幫助。 任何的演算法題,如同寫作文一樣,都有一些模板可以套用的。比如面試常考的DP(動態規劃),難的是一些關鍵點是否能想清楚。比如你能寫出動態轉移方程,這題基本上就可以AC了。 整個刷題實錄內容,包括雙子針、動態規劃、二分查詢、貪心演算法、深度優先搜尋、字串、遞迴、字典樹、排序、連結串列等相關專題內容。圖文並茂,附有刷題答案原始碼。 刷題任務的題目,是根據題目的型別來彙總的,總結了八個類別,每個類別下面也總結了5個左右的題型,幫助大家分門別類的突破,所以刷起來相對會更有重點和針對性。如果從頭到尾的刷,每週按順序刷42題,很容易讓自己堅持不下來,也會覺得很枯燥。所以在制定計劃的時候可以讓這個計劃變得更“有趣"和針對性,讓它看起來更容易實現一點,才會更容易堅持。 目前上述內容已打包成完整電子書,具體獲取方式如下: 掃描關注 程式猿進階 公眾號; 在 程式猿進階 公眾號後臺回覆關鍵詞「9999」獲取下載地址。 掃描關注,回覆"9999"即可下載 最近熱文• 一個員工的離職成本到底有多恐怖!• 我剛去公司用 Lombok ,以為很酷,結果被領導說了一頓• 畢業設計別再做 XX 管理系統了!!!• 阿里徹底拆中臺了!• 為什麼我不建議你用去 “ ! = null " 做判空?在這裡,我為大家準備了一份2020年最新最全的《Java面試題及答案V3.0》,這套電子書涵蓋了諸多後端技術棧的面試題和答案,相信可以幫助大家在最短的時間內複習Java後端的大多數面試題,從而拿到自己心儀的offer。截了張圖,大家可以仔細檢視左邊的選單欄,覆蓋的知識面真的很廣,而且質量都很不錯。 資料獲取方法 掃描下方二維碼後臺回覆關鍵詞:Java核心整理明天見(。・ω・。)