濮阳杆衣贸易有限公司

主頁 > 知識庫 > SQL WHERE IN參數(shù)化編譯寫法簡單示例

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

熱門標(biāo)簽:簡單的智能語音電銷機(jī)器人 小程序智能電話機(jī)器人 湖南保險智能外呼系統(tǒng)產(chǎn)品介紹 怎么去開發(fā)一個電銷機(jī)器人 河北便宜電銷機(jī)器人軟件 怎么申請400熱線電話 南昌呼叫中心外呼系統(tǒng)哪家好 泗洪正規(guī)電話機(jī)器人找哪家 ai電話電話機(jī)器人

前言

最近在一次使用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

說明:通過計(jì)算values里面字符串個數(shù),動態(tài)構(gòu)造編譯的參數(shù)。

總結(jié)

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

您可能感興趣的文章:
  • MySQL的WHERE語句中BETWEEN與IN的使用教程
  • MySQL 存儲過程傳參數(shù)實(shí)現(xiàn)where id in(1,2,3,...)示例
  • 解析sql語句中l(wèi)eft_join、inner_join中的on與where的區(qū)別

標(biāo)簽:那曲 荊門 瀘州 柳州 淮安 江蘇 景德鎮(zhèn) 威海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL WHERE IN參數(shù)化編譯寫法簡單示例》,本文關(guān)鍵詞  SQL,WHERE,參數(shù),化,編譯,寫法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL WHERE IN參數(shù)化編譯寫法簡單示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL WHERE IN參數(shù)化編譯寫法簡單示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    竹北市| 塔河县| 兴安盟| 璧山县| 岫岩| 吉隆县| 普兰县| 德江县| 浏阳市| 贵溪市| 杭锦后旗| 上杭县| 长春市| 军事| 富平县| 梧州市| 淮南市| 西贡区| 鄂伦春自治旗| 淳安县| 武冈市| 甘泉县| 凉城县| 平潭县| 上饶市| 沙坪坝区| 元阳县| 平罗县| 博客| 行唐县| 曲水县| 阿合奇县| 新绛县| 马公市| 西充县| 景德镇市| 满洲里市| 淳化县| 新民市| 永安市| 河池市|