Python 在检查输入是否存在于实际存在的数据库中时获取假值

Python 在检查输入是否存在于实际存在的数据库中时获取假值,python,sqlite,Python,Sqlite,我不太确定如何处理这个问题,但在将输入与数据库中的数据进行比较时,我得到了错误的值。这是我目前的代码: conn = sqlite3.connect('db_employees.db') c = conn.cursor() query = "SELECT * FROM tb_emp_info" c.execute(query) result = c.fetchall() in_ = 'Permanent', # 'Permanent' is present in the database pri

我不太确定如何处理这个问题,但在将输入与数据库中的数据进行比较时,我得到了错误的值。这是我目前的代码:

conn = sqlite3.connect('db_employees.db')
c = conn.cursor()
query = "SELECT * FROM tb_emp_info"
c.execute(query)
result = c.fetchall()
in_ = 'Permanent', # 'Permanent' is present in the database
print(in_ in result) # check if input is present in the database
问题是每行返回一个元组(注意链接是针对MySQL的,但是解释比官方文档好):

该方法获取查询结果集的所有(或所有剩余)行,并返回元组列表。如果没有更多行可用,它将返回一个空列表

这意味着
result
将如下所示:

[(field1, field2, f3...), (field1, field2, f3...), ...]
现在,中的
将检查任何
(字段1、字段2、f3…
是否等于
永久性
,这显然总是错误的

根据:

或者根据@shmee的建议:

print(any(item for item in result if in_ in item))

如果
result
中的
in.
出现在
result
中的任何位置,则应打印
True
。请发布表格的示例数据,然后解释您试图检查的内容。
print(result)
display是什么?以下是表格“tb_emp_info”中的一些数据:[(“永久性”、“工作订单”、“服务合同”、“临时性”、“临时性”)。所以“Permanent”在表中,因此我的程序应该打印True,因为“result”中有“Permanent”,但它打印False而不是。顺便说一句,我刚刚注意到,在“='Permanent',
中的
末尾有一个
,这将不起作用-请删除它(如果它存在)和帖子。我忍不住想知道,如果
输入
存在于数据库之外的数据库中,为什么要检查它。为什么不使用where子句将结果限制为在特定列中具有所需输入作为值的记录?@Sev如果这实际上不打印任何内容,那么我希望您在如何将该打印语句放入程序中时会遇到一些问题。我看不出有什么合理的方法可以在这种情况下不打印
True
False
。然而,我个人觉得这个解决方案有点笨拙。我会按照
print(任何(in_u.in项目对应结果中的项目))的思路去做某事。
print(any(item for item in result if in_ in item))