即使我的搜索输入中有相似的单词彼此分开(不是连续的),我如何从sqlite数据库中查询和获取数据

niknxzdl  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(365)

我的网站上有一个博客搜索功能。
这是我的搜索输入:懒惰的孩子
我的sqlite数据库中有一个列,名为:children is getting lazy
我使用下面的代码(python)来查询数据:

many_posts0 = BlogPost.query.filter(or_((BlogPost.problem_name.ilike("%" + form.search.data + "%")),(BlogPost.text.ilike("%" + form.search.data + "%")))).order_by(BlogPost.date.desc())

但是,使用上面的代码,我无法用搜索输入“children lazy”显示“children is get lazy”列的结果。如果我将搜索结果设为“children is”,则会显示列的数据。我想知道我的问题是否是因为我的查询代码中的“ilike”。

jm81lzqq

jm81lzqq1#

用空格分割sraach字符串并用“%”联接


# split words and join with "%"

search_string = "%" + "%".join(search_data.split()) + "%"
many_posts0 = BlogPost.query.filter(or_((BlogPost.problem_name.ilike(search_string)),(BlogPost.text.ilike("%" + form.search.data + "%")))).order_by(BlogPost.date.desc())

相关问题