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

时间:2018-07-05 20:55:05

标签: python mysql python-3.4 fuzzy-logic

我正在尝试从用户那里获取输入,并在数据库表中进行搜索。但是我的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()

1 个答案:

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

这种查找不需要任何类型的commitrollback,您只是在查询数据库,因此代码的后半部分对我来说毫无意义。

您当前的查询将返回age等于您当前值的所有情况。如果仅是为了查看是否存在,则可以限制查询并使用fetchone()

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