我正在尝试在sqlite3表中搜索记录以获取在where条件下插入的最后一条记录,但是我只能用一个condition WHERE CODE = df = "DS3243"
来完成。但是我想做的是在多个WHERE条件jf = "QS2134", df = "DS3243", sf = "MS5787"
下进行操作,这样我就可以使用所提供的代码插入最后一条记录。
DEMONTSTRATION
CODE POINT
QS2134 1000
DS3244 2000
MS5787 3000
QS2134 130
QS2134 200 # want to get this because it last with such code
DS3244 300
MS5787 4500
DS3244 860 # want to get this because it last with such code
MS5787 567
MS5787 45009 # want to get this because it last with such code
我只能处理一个变量cur.execute("SELECT * FROM PROFILE WHERE CODE=? ORDER BY POINT ASC LIMIT 1 ",(df,))
,但我想处理多个变量。
import sqlite3
jf = "QS2134"
df = "DS3243"
sf = "MS5787"
con = sqlite3.connect("TEST.db")
cur = con.cursor()
cur.execute("SELECT * FROM PROFILE WHERE CODE=? ORDER BY POINT ASC LIMIT 1 ",(df,)) # limit one means last one
rows = cur.fetchall()
for row in rows:
print(row)
con.commit()
con.close()
答案 0 :(得分:1)
我不确定我是否理解您的问题,但是您是否可能想将结果分组? 您要查找的是“ group by”子句吗?
类似的东西:
select CODE, MAX(POINT) group by CODE;
答案 1 :(得分:0)
我认为您只是在尝试扩展查询,在这种情况下,为什么不尝试字符串格式化?
x = "SELECT * FROM my_table where col1 = '{0}' or col2 ='{1}';".format(var_1, var_2)
cur.execute(x)
这样,您可以根据需要扩展查询条件。