SQL WHERE IN參數化編譯寫法簡單示例
文章主要給大家介紹了關于SQL WHERE IN參數化編譯寫法的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面來一起學習學習吧...
前言
最近在一次使用sql中的where in語句時,造成了一些非預期的查詢結果。尤其是在代碼中去編寫并執行sql語句時,會出現一些意外情況。再查閱了一些資料以及手動測試后,發現是自己sql語句寫法存在問題,在此記錄。
例子
業務需求,需要通過SQL語句從asset資產表中查詢域名字段在(“thief.one”,”nmask.cn”,”sec.thief.one”)范圍內的數據庫記錄,SQL語句該怎么寫呢?
拼接法(錯誤)
values = "'thief.one','nmask.cn','sec.thief.one'"
sql = "select * from asset where domain in ("+values+")"
print sql
說明:通過將搜索條件以字符串拼接的方式構造sql語句,語法上可通過,但存在著安全隱患(參照sql注入漏洞)
參數化1(錯誤)
values = (("thief.one","nmask.cn","sec.thief.one"),)
sql = "select * from asset where domain in %s"
print sql
print values
說明:通過參數化方式,將where in 后面的查詢內容傳入。表面上看沒問題,但在編譯過程中,會將(“thief.one”,”nmask.cn”,”sec.thief.one”)整體看成一個字符串,而作為查詢條件,與需求不符合。
參數化2(正確)
values = ("thief.one","nmask.cn","sec.thief.one")
sql = "select * from asset where domain in ({})".format(",".join(['%s' for i in values]))
print sql
print values
說明:通過計算values里面字符串個數,動態構造編譯的參數。
總結
以上就是SQL WHERE IN參數化編譯寫法簡單示例文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值。
-
html5 canvas 實現光線沿不規則路徑運動實例代碼
文章主要介紹了html5 canvas 實現光線沿不規則路徑運動,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下。g讓動畫沿著不規則路徑運動查閱svg文檔后發現,svg動畫...
-
中文轉換成html中的utf-8的方法實例代碼
文章主要介紹了中文轉換成html中的utf-8的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下在HTML中,中文的“好好學習”可...
-
html實現簡單ListViews效果的實例代碼
文章主要介紹了html實現簡單ListViews效果的實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下html實現簡單Li...
-
CSS3 translate導致字體模糊的實例代碼
文章主要介紹了CSS3 translate導致字體模糊的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧今日客戶反饋,發現 使用了 translate會導致字體模糊。.media-body-b...
-
關于CSS中@support實現漸進式網頁設計實例代碼
文章主要給大家介紹了關于CSS中@support實現漸進式網頁設計的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用CSS具有一定的參考學習價值前言特性查詢賦予了我們...
-
HTML6實現折疊菜單與手風琴菜單的實例代碼
文章主要介紹了HTML6實現折疊菜單與手風琴菜單的實例代碼,需要的朋友可以參考下。頁面主體部分:<body><ul id="menu"> <li> <a href="#">一級菜單1</a> <ul> <li>二級...
-
html 仿百度百科導航下拉菜單功能實例代碼介紹
文章主要介紹了html 仿百度百科導航下拉菜單功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下。html 仿百度百科導航下拉菜單功能,具...
-
WINDOWS下安裝MYSQL數據庫教程詳解
文章主要介紹了WINDOWS下安裝MYSQL教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下。1、下載安裝包-根據自己電腦系統選擇合適的版本:htt...
-
django2.2版本連接mysql數據庫的方法
文章主要介紹了django2.2版本如何連接mysql數據庫,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下。一、運行項目報錯信息如下:File "/home/p...
-
mysql數據庫實現多表關聯統計、子查詢統計示例
文章主要介紹了mysql實現多表關聯統計(子查詢統計),結合具體案例形式分析了mysql多表關聯統計的原理、實現方法及相關操作注意事項,需要的朋友可以參考下。本文實例講述了my...