<p>我正在使用python创建一组字符串,并尝试查找该字符串是否在sqlite表中。如果是,我将把它插入另一个表。但是,为每个字符串值使用一个“LIKE”运算符需要花费太多时间。所以我试着把我要搜索的每一个字符串组合成一个SELECT</p>
<pre><code>INSERT INTO table1 (ID, str0, str1, str2, str3)
SELECT m.ID, m.str0, m.str1, m.str3, 2 FROM table2 m
WHERE m.str0 LIKE "%xyz%" OR m.str0 LIKE "%asd%" OR m.str0 LIKE "%qwe%" .....
(goes on and on and on and on)
</code></pre>
<p>在一个INSERT中使用execute()创建了一个错误,即查询应该少于1000个字符。你知道吗</p>
<p>创建了一个l=[%xyz%,%asd%,%qwe%]的列表,并尝试使用executemany()</p>
<pre><code>conn.executemany('INSERT INTO table1 (ID, str0, str1, str2, str3)
SELECT m.ID, m.str0, m.str1, m.str2, 2 FROM table 2 m
WHERE m.str0 LIKE ?',l)
</code></pre>
<p>但是它给出了一个错误“sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,提供了5个</p>
<p>处理这类任务的最佳方法是什么?你知道吗</p>