如何使用python';在查询中转义%;s sqlalchemy';s execute()和pymysql?
我的问题是:如何使用python';在查询中转义%;s sqlalchemy';s execute()和pymysql?,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我的问题是: 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 一个快速的谷歌说使用%%而不是%,但这也不起作用。如何转义%或是否有其他方法来查询以随
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
一个快速的谷歌说使用%%而不是%,但这也不起作用。如何转义%或是否有其他方法来查询以随机字母开头然后是特定序列的字符串?由于这是一个文本字符串,因此最好在此处使用绑定参数(如下图所示):
实现绑定参数的另一种方法:
from sqlalchemy import text
connection.execute(
text("select id_number from Table where string like :string limit 1").\
bindparams(string="_stringStart%")
)
甚至严格打字:
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%"}
)
请记住,
text()
构造在SQLAlchemy 1.4中已被弃用,并将在SQLAlchemy 2.0中删除。Hi~,如何将其与SQLAlchemy orm一起使用?@DachuanZhao session.query.filter(table.string.like(“\u stringStart%”)
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%"}
)