Замена строки на переменную python в SQL-запросе

0

поэтому я знаю, что подобные вопросы были заданы раньше, но предлагаемые решения, похоже, не работают для меня, если, возможно, я не ошибаюсь.

Я хочу изменить это: query1= ("SELECT anthologyID, title FROM newschema.item WHERE title LIKE 'asperges'" ) где вывод 51962, Asperges

в нечто подобное:

asperges= "asperges" cursor.execute(query1,asperges) query1= ("SELECT anthologyID, title FROM newschema.item WHERE title LIKE '%s'")

проблема: вывод все неправильный (я печатаю в цикле for на курсор только для справки), и вместо того, чтобы получать только одно совпадение, я получаю соответствие по всем заголовкам в этой таблице.

что?

(потому что кто-то, вероятно, скажет мне сделать что-то вроде этого: query1= ("SELECT anthologyID, title FROM newschema.item WHERE title LIKE '%s'", asperges)

Этот запрос дает мне AttributeError: 'tuple' object has no attribute 'encode'

Спасибо!

Теги:

1 ответ

2

Для cursor.execute вы можете дать два аргумента: сначала строка со значениями, которые нужно заменить ("% s"), а вторая - кортеж, так что вы можете бросить это на свой курсор (лучший вариант!):

cursor.execute("SELECT anthologyID, title FROM newschema.item WHERE title LIKE %s",('aspergers',))

НЕ ЗАБУДЬТЕ запятую после "aspergers"! Он преобразует ваши данные в кортеж.

Или вы можете задать запрос и передать его курсору:

query1= "SELECT anthologyID, title FROM newschema.item WHERE title LIKE %s"  % (asperges,)
cursor.execute(query1)

ПРОВЕРЬТЕ COMMA снова.

  • 0
    благодарю вас! В конечном итоге я сделал следующее: cursor.execute («SELECT anthologyID, title FROM newschema.item WHERE title LIKE% s», (asperges,)), что делает замену процента на запятую, также немного похожую вопрос: как бы я мог воссоздать что-то вроде% asperges%, где я хочу сопоставить другие символы после последних s в 'asperges' в LIKE спасибо
  • 0
    Если вы хотите написать символ «%», просто удвойте его «%%». Например: "(...) ГДЕ заголовок типа" %%% s %% '"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню