久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL中怎么實現WHERE IN參數化編譯

157次閱讀
沒有評論

共計 880 個字符,預計需要花費 3 分鐘才能閱讀完成。

這篇文章主要為大家展示了“SQL 中怎么實現 WHERE IN 參數化編譯”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“SQL 中怎么實現 WHERE IN 參數化編譯”這篇文章吧。

例子

業務需求,需要通過 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 參數化編譯”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計880字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 阿城市| 茂名市| 隆子县| 阿拉善右旗| 沽源县| 七台河市| 黎川县| 从化市| 正阳县| 阿拉善左旗| 东城区| 随州市| 家居| 晋城| 宾川县| 交城县| 八宿县| 宣恩县| 大城县| 潞西市| 延庆县| 江西省| 通海县| 深水埗区| 盐城市| 云安县| 贵港市| 威远县| 额敏县| 黄浦区| 嫩江县| 黄山市| 仙游县| 定远县| 容城县| 曲水县| 靖西县| 根河市| 三穗县| 炎陵县| 喀喇沁旗|