【发布时间】:2021-01-18 13:46:44
【问题描述】:
我有生成随机数的代码,以及一个 mysql 数据库,其中的一些数字应该与许多随机生成的数字相匹配。一旦找到匹配项,该程序应该会中断,但是即使我看到生成了几个匹配项,它也会继续运行。我多次检查数据库,所有数字都在那里。我是编码新手,所以我想我查询数据库错误?将不胜感激任何帮助。谢谢
import random
import mysql.connector
mydb = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "password",
database = "testdb"
)
my_database = mydb.cursor()
sql_statement = "SELECT * FROM numbers"
my_database.execute(sql_statement)
output = my_database.fetchall()
while True:
ran = random.randrange(100000,200000,100)
if ran in output:
print("MATCH!",ran)
break
else:
print(ran)
'''
【问题讨论】:
-
fetchall()返回一个元组列表。ran是一个整数,它不等于元组(即使元组包含整数作为其唯一项)。您需要遍历每个元组。 -
感谢您的回复。您的意思是在第 16 行添加 'for x in output:' 然后缩进其余部分吗?
-
或者,如果表格只有一列,你可以说
if (ran,) in output: -
成功了!非常感谢!
标签: python mysql python-3.x mysql-workbench