擅长:python、mysql、java
<p>使用<code>REGEXP</code>作为一种干净的方法(尽管您不能直接使用它,请查看<a href="https://stackoverflow.com/a/5365533/6279450">Problem with regexp python and sqlite</a>的答案):</p>
<pre><code>def regexp(expr, item):
reg = re.compile(expr)
return reg.search(item) is not None
conn.create_function("REGEXP", 2, regexp)
allergies = "|".join([i.capitalize() for i in listallergy])
print(allergies)
query='SELECT RecipeName FROM Recipess where Ingredients Not REGXP \'{}\''.format(allergies)
print(query)
</code></pre>
<p>一种简单的方法是通过<code>AND</code>操作符连接所有语句(但正如@alexis在评论中提到的,它有自己的问题):</p>
<pre><code>allergies = " AND ".join(["Ingredients Not LIKE '%" + i.capitalize() + "%'" for i in listallergy])
print(allergies)
query='SELECT RecipeName FROM Recipess where {}'.format(allergies)
print(query)
</code></pre>