首頁 > 資料庫 > mysql教程 > 如何在 SQLite 中正確處理帶有綁定參數的'WHERE IN”語句?

如何在 SQLite 中正確處理帶有綁定參數的'WHERE IN”語句?

Mary-Kate Olsen
發布: 2025-01-03 00:31:39
原創
928 人瀏覽過

How to Properly Handle `WHERE IN` Statements with Bind Parameters in SQLite?

在SQLite 中處理「WHERE _ IN ___」語句

使用WHERE IN🎜 > SQLite 中的語句,確保語句的正確建構至關重要,以避免錯誤。當提供的綁定數量與預期數量不符時,就會出現問題,導致程式錯誤。

要解決此問題,您需要修改語句以包含正確數量的問號 (?),如下所示參數。例如:

statement = "SELECT * FROM tab WHERE obj IN ({0})".format(', '.join(['?'] * len(list_of_vars)))
登入後複製
這裡,我們使用

join([?]*len(list_of_vars))_ 產生逗號分隔的問號字串,從而允許正確綁定參數值。例如,如果 _list_of_vars 包含 ['foo', 'bar'],則語句變成:

"SELECT * FROM tab WHERE obj IN (?, ?)"
登入後複製
現在,您可以透過傳遞

list_of_vars作為執行此語句參數值:

c.execute(statement, list_of_vars)
登入後複製
雖然可能存在替代方法,但建議使用綁定參數來防止 SQL注入攻擊。對於大量列表,使用臨時表來儲存值並對其進行連接可能會提高效率。

以上是如何在 SQLite 中正確處理帶有綁定參數的'WHERE IN”語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板