如何使用python db-api安全地生成SQL LIKE语句

lar*_*els 15 python sql python-db-api sql-like

我试图使用python的db-api汇编以下SQL语句:

SELECT x FROM myTable WHERE x LIKE 'BEGINNING_OF_STRING%';
Run Code Online (Sandbox Code Playgroud)

其中BEGINNING_OF_STRING应该是一个python var,可以通过DB-API安全地填充.我试过了

beginningOfString = 'abc'

cursor.execute('SELECT x FROM myTable WHERE x LIKE '%s%', beginningOfString) 
cursor.execute('SELECT x FROM myTable WHERE x LIKE '%s%%', beginningOfString)
Run Code Online (Sandbox Code Playgroud)

我没有想法; 这样做的正确方法是什么?

unu*_*tbu 21

如果可以的话,最好将参数与sql分开.然后,您可以让db模块负责正确引用参数.

sql='SELECT x FROM myTable WHERE x LIKE %s'
args=[beginningOfString+'%']
cursor.execute(sql,args)
Run Code Online (Sandbox Code Playgroud)