Форум сайта python.su
cursor.execute('SELECT DISTINCT val FROM t') mylist=cursor.fetchall() if val not in mylist: cursor.execute('INSERT INTO t (val) VALUES (%s)',val)
Отредактировано ruff3d (Июль 31, 2012 08:55:40)
Офлайн
(val,) not in mylist
>>> x=(u'15412',), (u'15312',), (u'14892',), (u'15373',), (u'15372',) >>> x ((u'15412',), (u'15312',), (u'14892',), (u'15373',), (u'15372',)) >>> v = u'15412' >>> v in x False >>> (v,) in x True
Отредактировано EBFE (Июль 31, 2012 10:07:34)
Офлайн
спасибо! вопрос решен)
Офлайн
Или распаковать все кортежи. Не вижу смысла их хранить в таком формате.
Офлайн
Может доверить SQL базе проверку наличия элемента?
cursor.execute('SELECT val FROM t where val = %s', (val,)) if cursor.fetchone() is None: # insert
Офлайн
Да что вы, про SQL инъекции никогда не слышали? А если в val ' ?
google/python sql parameterised query
Офлайн
odnochlen
Да что вы, про SQL инъекции никогда не слышали?
cursor.execute('SELECT val FROM t where val = %s', (val,)) cursor.execute('SELECT val FROM t where val = %s' % (val,))
Офлайн
Параметризированные запросы и printf формат поддерживают? Имхо лучше таки юзать (?), чтобы с первого взгляда отличать.
Офлайн