【发布时间】:2021-06-14 21:23:52
【问题描述】:
我的 Django 代码中有这样的查询
cond = self.text_query(field.id, f'''
EXISTS(
SELECT *
FROM {self.fieldvalue_db_view}
WHERE entry_id = {self.db_table}.id AND
{self.fieldvalue_db_view}.field_id = {field.id} AND
{self.fieldvalue_db_view}.{text_search_column} SIMILAR TO %(pattern)s
)
''', dict(pattern='%' + val + '%'))
什么时候
val = '%%john smith%%' or val = '%%john%smith%%'
它没有返回像 'John smith' 这样的结果,但是如果
val = '%%john%smith%|%smith%john%%'
它返回带有“John smith”的结果。
如何解决这种区分大小写的问题?
谢谢,
【问题讨论】:
-
您是否考虑将 val 转换为 upper ,然后将其与 upper 结果进行比较?因此,您将大写字母与大写字母进行比较,将返回所有结果...
-
不,我想给出一些单词并获得包含所有这些单词的所有结果,这些单词以任何顺序且不区分大小写
-
如果有3个字怎么办?
标签: python sql django postgresql