在数据库中搜索的用户输入 mysql python 3.4

user input searched in database mysql python 3.4

我正在尝试获取用户的输入并在数据库 table 中进行搜索。但是我的 if 语句不能正常工作,它对存在的值和不存在的值显示相同的结果。学生 table 包含 first_name、last_name、年龄、收入、学位
我将年龄作为用户输入。 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()

我正试图摆脱你的问题和评论。也许你想要像下面这样的东西,你在失败的查找中依赖一个错误的值:

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")

这种查找不需要任何类型的 commitrollback,你只是在查询数据库,所以你的代码的后半部分对我来说没有意义。

您当前的查询将 return 所有 age 等于您当前值的情况。如果目的只是为了查看它是否 存在 那么您可以限制查询并使用 fetchone() 代替。

cursor.execute("SELECT age FROM STUDENTS WHERE age=%s LIMIT 1", (age,))