Подтвердить что ты не робот

Как избежать% в запросе с использованием python sqlalchemy execute() и pymysql?

Мой запрос:

result = connection.execute(
         "select id_number from Table where string like '_stringStart%' limit 1;")

дает ошибку:

query = query % escaped_args
TypeError: not enough arguments for format string

Быстрый google сказал использовать %% вместо%, но это тоже не работает. Как мне избежать% или есть другой способ запроса строки, которая начинается со случайной буквы, а затем определенной последовательности?

4b9b3361

Ответ 1

Так как это буквальная строка, вам лучше использовать связанный параметр (показано с помощью text()):

from sqlalchemy import text

connection.execute(
    text("select * from table where "
         "string like :string limit 1"), 
    string="_stringStart%")

Ответ 2

Удалите его с помощью обратного слэша \

Я использую его, когда выполняю LIKE запросы:

query_wildcard = "%{0}%".format(query.replace("%", "\%"))

Для поиска, где query есть 100%, query_wildcard затем содержит %100\%%, поэтому он фактически ищет 100%

Может это что-то реализовать в вашем коде?