我使用sqlite3存储有关数学测试的数据,然后检索它,他们可以在1,2,3中有3个类,然后他们得到一个分数,它存储他们的名字,分数,类和其他一些不重要的东西。 我需要按分数顺序检索数据,但仅适用于相应的类。
def sortHighest():#define function
con = lite.connect('scores.db')#connect to database
con.text_factory = str #remove "u" before result
cur = con.cursor()
cur.execute("SELECT name, highest FROM scores ORDER BY highest DESC")#ordering data
data = cur.fetchall()#fetching data
con.commit()#using data
print "|name|Best Score|"#how to print data
for row in data:#print each piece
print row
print "---------------------------------------"
menu()#back to menu
该表被称为得分,数据库是得分.db。 我需要改变这一点:
cur.execute("SELECT name, highest FROM scores ORDER BY highest DESC")#ordering data
仅显示被问及的课程,即第1课。
非常感谢
编辑:延期;无论如何使用我的"哪个类"来自python的变量为" ... WHERE class = ??? ..."
答案 0 :(得分:1)
使用where条件选择请求:
cur.execute("SELECT name, highest FROM scores WHERE class=1 ORDER BY highest DESC")
您可以通过连接构造字符串以动态使用您的变量" whichclass" :
cur.execute("SELECT name, highest FROM scores WHERE class="+str(whichclass)+" ORDER BY highest DESC")