#python #mysql #sql
#python #python-3.x #mysql-python
Вопрос:
Итак, я хочу сравнить входное значение со значением моей базы данных. ЕСЛИ входное значение совпадает с значением базы данных, я хочу print(inputvalue)
. Но если это не то же самое, я хочу print("Data Does Not Exist")
Итак, я попробовал этот код :
cur = connection.cursor()
query = """ SELECT * FROM `foo` """
cur.execute(query)
result = cur.fetchall()
inputvalue = input("Input= ")
for x in result:
if inputvalue not in x:
print("Data Does Not Exist")
else:
print(inputvalue)
и это вывод:
inputvalue= 1728192
Data Does Not Exist
Data Does Not Exist
Data Does Not Exist
Data Does Not Exist
1728192
Data Does Not Exist
Data Does Not Exist
Data Does Not Exist
Я ожидаю, что результат будет
Inputvalue= 1728192
Data Does Not Exist
Если данные не существуют,
И этот вывод:
Inputvalue= 1728192
1728192
Если данные существуют
Любой ответ будет оценен по достоинству!
Ответ №1:
Вместо того, чтобы загружать все строки из foo в python, я бы предложил запросить, есть ли это конкретное значение в вашей базе данных. Базы данных оптимизированы для такого запроса. И если в вашей базе данных много данных, вашему подходу потребуется много времени, чтобы загрузить все в память (что может легко привести к ошибке памяти).
Итак, я предполагаю, что вы храните свои значения в столбце с именем ‘bar’:
inputvalue = input("Input= ")
cur = connection.cursor()
query = """ SELECT * FROM `foo` WHERE bar = inputvalue """
cur.execute(query)
row_count = cur.rowcount
if row_count > 0:
print(inputvalue)
else:
print("Data Does Not Exist")
И чтобы вы поняли, почему ваш подход работает не так, как ожидалось: for x in result:
вы перебираете каждую строку в своей таблице, и для каждой строки вы проверяете, есть ли там inputvalue .
Комментарии:
1. Привет, спасибо за ваш ответ, ваш код работает!. И спасибо, что указали на мою ошибку
Ответ №2:
вы можете создать логический объект и после выполнения сравнить свой ответ :
cur = connection.cursor()
query = """ SELECT * FROM `foo` """
cur.execute(query)
result = cur.fetchall()
inputvalue = input("Input= ")
temp = False
for x in result:
if inputvalue in x:
temp = True
if temp:
print(inputvalue)
else:
print("Data Does Not Exist")