Reputation: 617
My query is:
result = connection.execute(
"select id_number from Table where string like '_stringStart%' limit 1;")
gives the error:
query = query % escaped_args
TypeError: not enough arguments for format string
A quick google said to use %% instead of % but that doesn't work either. How do I escape the % or is there another way to query for a string that starts with a random letter then a certain sequence?
Upvotes: 28
Views: 19367
Reputation: 539
Another way to implement bound parameters:
from sqlalchemy import text
connection.execute(
text("select id_number from Table where string like :string limit 1").\
bindparams(string="_stringStart%")
)
or even typed strictly:
from sqlalchemy import bindparam, String, text
connection.execute(
text("select id_number from Table where string like :string limit 1").\
bindparams(bindparam("string", type_=String)),
{"string"="_stringStart%"}
)
Bear in mind that text()
construct is deprecated sine SQLAlchemy 1.4 and will be removed in SQLAlchemy 2.0.
Upvotes: 0