【发布时间】:2020-02-07 07:08:04
【问题描述】:
我正在做的是将索引值与数据库的 bar_code_no 进行比较,如果 bar_code_no 已通过索引值验证,那么我想在我有姓名、电子邮件、电话号码的地方打印经过验证的 bar_code_no 的整行。我试过了,但无法比较。
import mysql.connector as mysql
mydb1=mysql.connect(
user = 'rajat',
passwd = 'rajat',
host = 'localhost',
database = 'master_database'
)
bal = []
validate = ('1', 'Green', '12:34:56:78:91:22', '456456', '2')
val = validate[3]
bal.append(val)
print(bal)
new_list = []
mycursor3 = mydb1.cursor()
mycursor3.execute("SELECT bar_code_no FROM android_display_data")
df = mycursor3.fetchall()
print(df)
if bal in df:
print('it exists')
else:
print('it does not exists')
输出是这样的:-
['456456']
[('456456',)]
it does not exists
【问题讨论】:
-
为什么不直接做 df = mycursor3.fetchall("SELECT bar_code_no FROM android_display_data"),这样就可以删掉多余的“executing”一行
-
我试过了,先生,但我不知道为什么我卡住了,因为这不是一个大问题。
-
df = mycursor3.fetchall("SELECT bar_code_no FROM android_display_data") 使用它会显示错误 --TypeError: fetchall() 需要 1 个位置参数,但给出了 2 个
-
好的...我明白了,我建议执行 SELECT * FROM ... WHERE "bar_code_no" = bal (这是验证中索引 3 处的值)。您将不得不对 sql 查询进行更改,这是一种方法,*(星号)获取所有记录,并使用 WHERE 作为依赖条件。
-
可以修复 init 以包含 fetchall() 的对象,或者只是将类更改为 @staticmethod,但我认为在你的情况下不要担心 fetchall( ) 现在只使用 execute()
标签: python mysql comparison