我試圖通過Python代碼打印SQL結果,其中我試圖從for循環傳遞where子句的不同謂詞。但代碼只取循環中的最後一個值並給出結果。爲Python中的where子句執行SQL
在下面的例子中,我有兩個不同的id值'aaa'和'bbb'。 id值='aaa'有4條記錄,id值='bbb'有2條記錄。 但下面的代碼只給我的id值='bbb'的結果不爲id值'aaa'
任何人都可以幫助確定我在做什麼錯誤?
import pymysql
db = pymysql.connect(host="localhost", user="user1", passwd="pass1", db="db1")
cur = db.cursor()
in_lst=['aaa', 'bbb']
for i in in_lst:
Sql = "SELECT id, val, typ FROM test123 Where id='{inpt}'".format(inpt=i)
print(Sql)
cur.execute(Sql)
records = cur.fetchall()
print(records)
db.close()
我得到如下
C:\Python34\python.exe C:/Users/Koushik/PycharmProjects/Test20161204/20170405.py
SELECT id, val, typ FROM test123 Where id='bbb'
(('bbb', 5, '1a'), ('bbb', 17, '1d'))
Process finished with exit code 0
是的,它只是縮進。這在Python語法中很奇怪。 –