[英]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.