簡體   English   中英

遍歷列表 Python SQL

[英]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,))

https://www.psycopg.org/docs/usage.html#strings-adaptation

暫無
暫無

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

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