Форум сайта python.su
Привет всем!
Возникла необходимость проверить на вхождение список из кортежей.
SQL запрос из БД (MySQL) возвращает результат в виде списка кортежей. Нужно проверить весь список кортежей, либо каждый кортеж на вхождение (in). Как это можно реализовать с помощью цикла?
Код ниже не проверяет на вхождение. (в таблице заведомо существует поле, которое проверяю на вхождение)
import MySQLdb as db
name = "1111"
conn = db.connect(host="localhost", user="admin", passwd="password", db="database")
cursor = conn.cursor()
sql = """SELECT * FROM `table`"""
cursor.execute(sql)
res = cursor.fetchall()
if name in res:
print "Yes"
else:
print "No"
Офлайн
как то так:
def check(name, res):
for tuple in res:
if name in tuple:
return True
return False
Офлайн
majesticкак-то не понятно, что же именно нужно проверить, существование поля в таблице или существование определенного значения в любом поле таблицы?
Возникла необходимость проверить на вхождение список из кортежей.
SQL запрос из БД (MySQL) возвращает результат в виде списка кортежей. Нужно проверить весь список кортежей, либо каждый кортеж на вхождение (in). Как это можно реализовать с помощью цикла?
Код ниже не проверяет на вхождение. (в таблице заведомо существует поле, которое проверяю на вхождение)
sql = """SELECT * FROM `table`"""
cursor.execute(sql)
if name in cursor.description:
print("yes")
else:
print("no")
sql = """SELECT * FROM `table`"""
cursor.execute(sql)
is_exist = False
for row in iter(cursor.fetchone, None):
if name in row:
is_exist = True
break
if is_exist:
print("yes")
else:
print("no")
Офлайн
Может проще проверить это с помощью SQl?
sql = “”“SELECT * FROM `table` where name=%s”“” % name
Офлайн
Edнет, так нельзя :) ТК ясно выразился: “Как это можно реализовать с помощью цикла?”
Может проще проверить это с помощью SQl?
sql = “”“SELECT * FROM `table` where name=%s”“” % name
Офлайн
Всем спасибо за помощь!
Проблема решилась изменением SQL-запроса.
Примерный код программы:
name = “1111”
conn = db.connect(host=“localhost”, user=“admin”, passwd=“password”, db=“database”)
cursor = conn.cursor()
sql = “”“SELECT * FROM `table` WHERE `field`=%s”“”
cursor.execute(sql, name)
res = cursor.fetchall()
if len(res) != 0:
print “Ok”
else:
print “No”
Офлайн