簡體   English   中英

如何在對SQLite3的Python調用中獲取可變長度占位符

[英]How to get variable length placeholders in a Python call to SQLite3

有沒有辦法在SQL查詢中使用可變長度占位符?

現在有一個3元組,我寫這樣的東西:

c.execute('SELECT * FROM table WHERE word IN (?, ?, ?)', tup)

但是,如果tup可以有不同的長度,也許是4元組或2元組怎么辦? 在這種情況下是否有使用占位符的語法? 如果沒有,編寫代碼的首選方法是什么?

你必須做這樣的事情(使用你的例子):

tup = ... # some sequence/tuple of unknown length
sql = 'SELECT * FROM table WHERE word IN (%s)' % ', '.join('?' for a in tup)
c.execute(sql, tup)

這樣,您可以在sqlite3模塊解析之前動態創建占位符列表並格式化SQL字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM