Найти - Пользователи
Полная версия: Проверить на вхождение список из кортежей
Начало » Python для новичков » Проверить на вхождение список из кортежей
1
majestic
Привет всем!
Возникла необходимость проверить на вхождение список из кортежей.
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"
pill
как то так:

def check(name, res):
for tuple in res:
if name in tuple:
return True
return False
pyuser
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")
Ed
Может проще проверить это с помощью SQl?
sql = “”“SELECT * FROM `table` where name=%s”“” % name
pyuser
Ed
Может проще проверить это с помощью SQl?
sql = “”“SELECT * FROM `table` where name=%s”“” % name
нет, так нельзя :) ТК ясно выразился: “Как это можно реализовать с помощью цикла?”
majestic
Всем спасибо за помощь!
Проблема решилась изменением 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”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB