擅长:python、mysql、java
<p>按照<a href="https://stackoverflow.com/a/42979809/131874">@piro</a>的建议,传递连接到参数的<code>%</code>最简单的方法是:</p>
<pre><code>query = "select 'x' ilike %s"
print (cursor.mogrify(query, ('%x%',)).decode('utf8'))
cursor.execute(query, ('%x%',))
print (cursor.fetchone()[0])
</code></pre>
<p>输出:</p>
^{pr2}$
<p>但是,如果要保持参数的干净,请使用<code>format</code>:</p>
<pre><code>query = "select 'x' ilike format('%%%%%%1$s%%%%', %s)"
print (cursor.mogrify(query, ('x',)).decode('utf8'))
cursor.execute(query, ('x',))
print (cursor.fetchone()[0])
</code></pre>
<p>输出:</p>
<pre><code>select 'x' ilike format('%%%1$s%%', 'x')
True
</code></pre>