[英]Iterating through a list Python SQL
我正在嘗試通過遍歷搜索值列表來搜索數據庫。 我快到了,因為這適用於整數,但不適用於字符串。 下面的代碼不起作用,但如果我用數字替換列表值,它會:
mycursor = mydb.cursor()
lst = []
select_query = "SELECT * FROM fruit WHERE content LIKE "
ids = ["apple", "pear"]
for x in ids:
var = select_query + str(x)
mycursor.execute(var)
lst.extend(mycursor.fetchall())
print(lst)
這是因為您必須在 SQL 中將字符串括在引號中。 所以例如
SELECT * FROM fruit WHERE content LIKE 'pears'
將起作用,並且僅適用於“梨”周圍的單引號。 更好的是,類型轉換可以(並且應該)使用 psycopg2 自動完成:
select_query = "SELECT * FROM fruit WHERE content LIKE %s"
...
mycursor.execute(select_query, (x,))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.