亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • 詳細聊聊關(guān)于sql注入的一些零散知識點

    詳細聊聊關(guān)于sql注入的一些零散知識點

    SQL注入攻擊是通過將惡意的SQL查詢或添加語句插入到應(yīng)用的輸入?yún)?shù)中,再在后臺SQL服務(wù)器上解析執(zhí)行進行的攻擊,它目前是黑客對數(shù)據(jù)庫進行攻擊的最常用的手段之一,這篇文章主要給大家介紹了關(guān)于sql注入的一些零散知識點,需要的朋友可以參考下
    2021-10-10
  • 關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫概述與優(yōu)缺點對比

    關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫概述與優(yōu)缺點對比

    這篇文章介紹了關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫概述與優(yōu)缺點對比,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 關(guān)于面試中常問的數(shù)據(jù)庫回表問題

    關(guān)于面試中常問的數(shù)據(jù)庫回表問題

    這篇文章主要介紹了關(guān)于面試中常問的數(shù)據(jù)庫回表問題,回表就是先通過數(shù)據(jù)庫索引掃描出數(shù)據(jù)所在的行,再通過行主鍵id取出索引中未提供的數(shù)據(jù),即基于非主鍵索引的查詢需要多掃描一棵索引樹,需要的朋友可以參考下
    2023-07-07
  • ubuntu中使用docker下載華為opengauss數(shù)據(jù)庫超簡單步驟

    ubuntu中使用docker下載華為opengauss數(shù)據(jù)庫超簡單步驟

    openGauss是關(guān)系型數(shù)據(jù)庫,采用客戶端/服務(wù)器,單進程多線程架構(gòu),支持單機和一主多備部署方式,備機可讀,支持雙機高可用和讀擴展,這篇文章主要給大家介紹了關(guān)于ubuntu中使用docker下載華為opengauss數(shù)據(jù)庫超的簡單步驟,需要的朋友可以參考下
    2024-04-04
  • 詳細講解PostgreSQL中的全文搜索的用法

    詳細講解PostgreSQL中的全文搜索的用法

    這篇文章詳細介紹了的PostgreSQL中的全文搜索的用法,包括對全文搜索的一些優(yōu)化的實現(xiàn),需要的朋友可以參考下
    2015-04-04
  • 8種主流NoSQL數(shù)據(jù)庫系統(tǒng)特性對比和最佳應(yīng)用場景

    8種主流NoSQL數(shù)據(jù)庫系統(tǒng)特性對比和最佳應(yīng)用場景

    這篇文章主要介紹了8種主流NoSQL數(shù)據(jù)庫系統(tǒng)特性對比和最佳應(yīng)用場景,對選擇一個NoSQL數(shù)據(jù)庫來說是一個不錯的參考文章,需要的朋友可以參考下
    2014-06-06
  • SQL 查詢語句積累

    SQL 查詢語句積累

    SQL 查詢語句積累...
    2006-12-12
  • Sybase 復(fù)制與熱切換數(shù)據(jù)

    Sybase 復(fù)制與熱切換數(shù)據(jù)

    SYBASE復(fù)制服務(wù)器(Sybase Replication Server)用來滿足日益發(fā)展的企業(yè)客戶/服務(wù)器計算機環(huán)境的需要。自從復(fù)制服務(wù)器被廣泛應(yīng)用以來,已成為企業(yè)范圍內(nèi)客戶/服務(wù)器應(yīng)用模式的基礎(chǔ)。
    2009-06-06
  • 數(shù)據(jù)庫設(shè)計技巧[轉(zhuǎn)]

    數(shù)據(jù)庫設(shè)計技巧[轉(zhuǎn)]

    數(shù)據(jù)庫設(shè)計技巧[轉(zhuǎn)]...
    2007-01-01
  • 面試中常常被問到sql優(yōu)化的幾種方案

    面試中常常被問到sql優(yōu)化的幾種方案

    這篇文章主要給大家介紹了關(guān)于面試中常常被問到sql優(yōu)化的幾種方案,現(xiàn)在?試過程中除了開發(fā)的基礎(chǔ),?試官通常還會問SQL優(yōu)化的??,SQL優(yōu)化也能體現(xiàn)出來平時對數(shù)據(jù)庫的理解和技術(shù)的?低,需要的朋友可以參考下
    2023-08-08

最新評論