我使用pysqlite来构建和搜索一个包含关键字+对应于每个关键字的url集的数据库。我搜索数据库的策略只需要1个关键字,因为它只需要SQL语句中的1个WHERE子句。比如:
... WHERE lexicon.word=?", keyword)
但是,我想将任意数量的关键字匹配到我的数据库中,我认为这相当于在它们之间有几个WHERE子句或语句。因为我不知道会给我多少关键字,所以我不能假设有特定数量的WHERE子句并使用API的替换功能填充它们。在
我相信我可以使用Python的字符串插入操作来为找到的每个关键字使用OR语句来破坏WHERE语句。不过,我很确定这是相当骇人听闻的,因为它可能导致注入攻击漏洞。在
我也考虑过使用.executemany()函数,但它将运行许多单独的select,而不是包含所有需要的WHERE子句的select。在
有没有比我提到的字符串替换方法更好的方法呢?我对SQL很陌生,所以请忍受我和我的无知。谢谢。在
一个SQL查询只能有一个WHERE子句,但您可以用或连接多个比较,或者只使用一个IN表达式:
要构造这样一个语句,只需要一点字符串处理:
^{pr2}$相关问题 更多 >
编程相关推荐