Строковые форматы Python с подстановочными знаками SQL и LIKE

Мне трудно получить некоторые sql в Python, чтобы правильно пройти MySQLdb. Меня убивает форматирование строк питонов.

Мой оператор SQL использует ключевое слово LIKE с подстановочными знаками. Я пробовал несколько разных вещей в Python. Проблема в том, что, как только я заставлю одного из них работать, в MySQLdb есть строка кода, которая прерывается на строковом формате.

Попытка 1:

"ВЫБЕРИТЕ tag.userId, считайте (user.id) как totalRows ОТ пользователя INNER JOIN tag ON user.id = tag.userId ГДЕ user.username LIKE '%% s%'"% (запрос)

Это не идти. Я получаю значение ошибки:

ValueError: неподдерживаемый символ формата '' '(0x27) в индексе 128

Попытка 2:

"ВЫБЕРИТЕ tag.userId, считайте (user.id) как totalRows ОТ пользователя INNER JOIN tag ON user.id = tag.userId ГДЕ user.username LIKE '\ %% s \%'"% (запрос)

Я получаю тот же результат от попытки 1.

Попытка 3:

like = "LIKE '%" + str (query) + "%'" totalq = "SELECT tag.userId, count (user.id) как totalRows ОТ пользователя INNER JOIN tag ON user.id = tag.userId ГДЕ user.username + нравится

Это правильно создает переменную totalq, но теперь, когда я запускаю запрос, я получаю ошибки от MySQLdb:

Файл "build / bdist.macosx-10.6-universal / egg / MySQLdb / cursors.py", строка 158, в запросе на выполнение = запрос% db.literal (args) TypeError: недостаточно аргументов для строки формата

Попытка 4:

like = "LIKE '\%" + str (query) + "\%'" totalq = "SELECT tag.userId, count (user.id) как totalRows ОТ пользователя INNER JOIN tag ON user.id = tag.userId ГДЕ пользователь .username "+ лайк

Это тот же результат, что и при попытке 3.

Это все кажется действительно странным. Как я могу использовать подстановочные знаки в операторах SQL с Python?

Ответы на вопрос(4)

Ваш ответ на вопрос