最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL WHERE IN參數(shù)化編譯寫法簡單示例

 更新時間:2019年11月17日 16:21:07   作者:nmask  
這篇文章主要給大家介紹了關(guān)于SQL WHERE IN參數(shù)化編譯寫法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用SQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

最近在一次使用sql中的where in語句時,造成了一些非預(yù)期的查詢結(jié)果。尤其是在代碼中去編寫并執(zhí)行sql語句時,會出現(xiàn)一些意外情況。再查閱了一些資料以及手動測試后,發(fā)現(xiàn)是自己sql語句寫法存在問題,在此記錄。

例子

業(yè)務(wù)需求,需要通過SQL語句從asset資產(chǎn)表中查詢域名字段在(“thief.one”,”nmask.cn”,”sec.thief.one”)范圍內(nèi)的數(shù)據(jù)庫記錄,SQL語句該怎么寫呢?

拼接法(錯誤)

values = "'thief.one','nmask.cn','sec.thief.one'"
sql = "select * from asset where domain in ("+values+")"
print sql

說明:通過將搜索條件以字符串拼接的方式構(gòu)造sql語句,語法上可通過,但存在著安全隱患(參照sql注入漏洞)

參數(shù)化1(錯誤)

values = (("thief.one","nmask.cn","sec.thief.one"),)
sql = "select * from asset where domain in %s"
print sql
print values

說明:通過參數(shù)化方式,將where in 后面的查詢內(nèi)容傳入。表面上看沒問題,但在編譯過程中,會將(“thief.one”,”nmask.cn”,”sec.thief.one”)整體看成一個字符串,而作為查詢條件,與需求不符合。

參數(shù)化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里面字符串個數(shù),動態(tài)構(gòu)造編譯的參數(shù)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論

章丘市| 临泉县| 东光县| 县级市| 孝义市| 邢台县| 石狮市| 中西区| 沙坪坝区| 海南省| 洛浦县| 万山特区| 韩城市| 中西区| 天津市| 仙游县| 千阳县| 乐至县| 名山县| 济宁市| 隆尧县| 洛川县| 南岸区| 昆山市| 沁源县| 金沙县| 尚志市| 延边| 勃利县| 岐山县| 共和县| 昭平县| 伊金霍洛旗| 仙游县| 大英县| 陵川县| 平陆县| 三亚市| 城固县| 嘉黎县| 临夏县|