Форум сайта python.su
Как выполнить запрос из Python 2.7 с оператором LIKE на БД Mysql.
Пробовал так:
name = '%' + name + '%' query1 = "SELECT id, name FROM users WHERE name LIKE '%s'" % name cursor.execute(query1)
Отредактировано tibs (Май 15, 2013 19:13:29)
Офлайн
Так вы параметр name в запрос не передали, вот и ошибка.
Офлайн
LexanderОшибся с копированием кода. Параметр я конечно же передавал.
Так вы параметр name в запрос не передали, вот и ошибка.
Офлайн
name = "%{0}%".format('bla-bla') cursor.execute("""SELECT id, name FROM users WHERE name LIKE %s""", name)
Офлайн
Решил таким образом:
name = request.GET.get('name', '').lower() cursor = connections['mydb'].cursor() query1 = "SELECT id, name FROM users WHERE name LIKE %s" cursor.execute(query1, '%' + name + '%')
Офлайн
Странно, но строчка
cursor.execute(query1, '%' + name + '%')
'unicode' object has no attribute 'items'
'str' object has no attribute 'items'
# gag
try:
cursor.execute(query1, '%' + name + '%')
except Exception, e:
print e
Отредактировано tibs (Июнь 4, 2013 19:30:47)
Офлайн
Решено таким образом:
cursor.execute(query1, ('%'+name+'%', ))
Офлайн