擅长:python、mysql、java
<p>代码:</p>
<pre><code>queryparams = {'Name': 'qwerty', 'Mno': '234'}
and_clause = []
[and_clause.append(' %s = %s ') for k,v in queryparams.items()]
and_clause_str = ' and '.join(and_clause)
sql = 'SELECT %s FROM data WHERE ' + and_clause_str
params = [','.join(queryparams.keys())]
for k,v in queryparams.items():
params.append(str(k))
params.append(str(v))
print(sql)
print(params)
cursor.execute(sql, params=tuple(params))
</code></pre>
<p>如果您向字典中再添加10/20个条目,则此操作有效。
以及防止<code>SQL-injection</code>:使用<code>params</code>来传递值,而不是<code>string-concatenation</code></p>