直接給出例子說明:
cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where id in %s" cs.execute(sql, (img_ids, )) # 直接傳遞元組包裹列表即可
補充知識:Python將多行數據處理成SQL語句中where條件in(' ',' ',' ')的數據
在工作中有時需要查詢上萬行指定的數據,就會用到SQL語句中 select * from table1 where table1.name in (' ' , ' ' ) 的條件查詢,所以自己寫了個小小的Python腳本來處理這多行數據,廢話不多說,上代碼:
初級代碼:
old_data = open("old_data.txt","r") new_data = open("new_data.txt","w") for line in old_data: line=line.strip(' ') new_data.write("'"+line+"',") old_data.close() new_data.close()
升級代碼:
with open('old_data.txt','r') as f1: with open('new_data.txt','w') as f2: for line in f1: line = line.strip(' ') f2.write("'" + line + "',")
兩種代碼的效果都是一樣的,使用open()函數,最後一步就要手動寫調用close()方法,比較麻煩,所以升級後使用with 語句,這樣Python就幫我們自動調用close()方法。
效果如下:
不足:處理後的數據應去掉最後一個逗號,這樣才是最完整的SQL語句符合where in()條件的數據。
[zhang3221994 ] 淺談pymysql查詢語句中帶有in時傳遞參數的問題已經有253次圍觀