我正在尝试从用户那里获取输入,并在数据库表中进行搜索。但是我的if语句无法正常工作,它对于存在的值和不存在的值显示相同的结果。包含first_name,last_name,年龄,收入,学位的Students表
并且我以年龄作为用户输入。 if语句不能正常工作。
这是我的代码:我尝试了许多不同的情况
import pymysql
db= pymysql.connect("localhost","testuser","admin","TESTDB")
cursor =db.cursor()
age= input("Please select a age:\n")
cursor.execute(f"SELECT AGE FROM STUDENTS WHERE age={age}")
results=cursor.fetchall()
print(results)
if (results ==age):
print("age exit!")
else:
print("not exists")
try:
db.commit()
except:
db.rollback()
db.close()
答案 0 :(得分:0)
我正在尝试摆脱您的问题和评论。也许您想要类似以下内容的内容,而您依赖于错误的查找中的false值:
import pymysql
db= pymysql.connect("localhost","testuser","admin","TESTDB")
cursor =db.cursor()
age= input("Please select an age:\n")
cursor.execute("SELECT age FROM STUDENTS WHERE age=%s", (age,))
data = cursor.fetchall()
if data:
print("Age exists")
else:
print("Age does not exist")
这种查找不需要任何类型的commit
或rollback
,您只是在查询数据库,因此代码的后半部分对我来说毫无意义。
您当前的查询将返回age
等于您当前值的所有情况。如果仅是为了查看是否存在,则可以限制查询并使用fetchone()
。
cursor.execute("SELECT age FROM STUDENTS WHERE age=%s LIMIT 1", (age,))