是否可以将完整的字符串与DB中的少一些匹配?
基本上,我可能会有一个类似“Microsoft Windows XP Home Edition
”或“Microsoft Windows XP SP2
”的字符串,但在我的数据库中我有“Microsoft Windows XP
”。
目前,我正在使用ILIKE
:
Issue.where(type: :os).where("name ILIKE ?", "%Windows XP SP2%")
由于SP2
部分不存在,因此未找到匹配项。
那么,是否有一些功能可以让我像往常一样在DB字段中放置一些通用的东西,如果输入更具体,那么找出一个匹配的东西?
答案 0 :(得分:1)
在这种情况下你应该使用PostgreSQL full text search:
示例查询:
Issue.where("to_tsvector(name) @@ to_tsquery('Windows|XP|SP2')")