我正在使用 pysqlite 构建和搜索关键字数据库 + 对应于每个关键字的 URL 集。我搜索数据库的策略适用于 1 个关键字,因为它只需要 SQL 语句中的 1 个 WHERE 子句。就像是:
... WHERE lexicon.word=?", keyword)
但是,我想将任意数量的关键字与我的数据库匹配,我相信这相当于在它们之间有几个带有 OR 语句的 WHERE 子句。因为我不知道我会得到多少关键字,所以我不能假设特定数量的 WHERE 子句并使用 API 的替换能力填充它们。
我相信我可以使用 Python 的字符串插入操作来使用我找到的每个关键字的 OR 语句来破坏 WHERE 语句。我很确定这很hacky,因为它可能导致注入攻击漏洞。
我也考虑过使用 .executemany() 函数,但它会运行许多单独的选择,而不是包含所有所需的 WHERE 子句的选择。
有没有比我提到的字符串替换方法更好的方法呢?我对 SQL 很陌生,所以请容忍我和我的无知。谢谢。