【发布时间】:2017-05-12 18:49:10
【问题描述】:
(如果你能想到更好的标题请说)
所以我有一个数据库,其中包含我希望能够搜索的表。搜索,如我有输入 intel core i5 并且我想获取列 Name 中包含 intel、core 和 i5 的任何行,以任何排列方式、围绕这些单词或任何其他单词的字符。
到目前为止,我正在做:
search = "intel core i5" # This is taken from an entry field.
words = []
for word in search.split()
words.append("%" + word.strip() + "%")
results = db_handler.query("""SELECT Table1.ID
FROM Table1
JOIN Table2
ON Table1.ID2 = Table2.ID
WHERE Table2.Name LIKE({0}) AND
Active=1""".format(", ".join("?" for _ in self.words)), self.words)
# db_handler.query is a method which queries and returns results. Plus some other stuff.
# In Table1 there is some columns like ID, ID2, Active, eta
# ID2 matches ID in Table2 which also contains Name
# So I want ID from Table1 searched by Name from Table2
但这不起作用,因为 LIKE 不需要多个参数。 (可能有比拆分输入更好的方法,但我这样做是因为这是有道理的,是吗?)我看到一些人提出了一些不同的问题,建议使用 REGEXP,但我已经看过了,但是并没有真正得到它供我使用。如果这是最好的,你能解释一下如何谢谢。我该怎么做?
谢谢
【问题讨论】:
标签: python sql python-3.x sqlite