Мне сложно загружать некоторые sql в python, чтобы правильно переходить через MySQLdb. Это pythons string форматирование, которое убивает меня.
В моем заявлении sql используется ключевое слово LIKE с подстановочными знаками. Я пробовал несколько разных вещей в Python. Проблема в том, что однажды я получу один из них, там есть строка кода в MySQLdb, которая отрывается в строчном формате.
Попытка 1:
"SELECT tag.userId, count (user.id) как totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username LIKE '%% s%'" % (query)
Это не выход. Я получаю ошибку значения:
ValueError: символ неподдерживаемого формата '' '(0x27) с индексом 128
Попытка 2:
"SELECT tag.userId, count (user.id) как totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username LIKE '\ %% s \%'" % (Запрос)
Получаю тот же результат из попытки 1.
Попытка 3:
like = "LIKE '%" + str (query) + "%'" totalq = "SELECT tag.userId, count (user.id) как totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username" + like
Это правильно создает переменную totalq, но теперь, когда я иду запускать запрос, я получаю ошибки от MySQLdb:
Файл "build/bdist.macosx-10.6-universal/egg/MySQLdb/cursors.py", строка 158, in execute query = query% db.literal(args) ТипError: недостаточно аргументы для строки формата
Попытка 4:
like = "LIKE '\%" + str (query) + "\%'" totalq = "SELECT tag.userId, count (user.id) как totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username" + like
Это тот же результат, что и попытка 3.
Все это кажется действительно странным. Как я могу использовать подстановочные знаки в операциях sql с python?