0
是否可以將完整的字符串與DB中少一些的內容匹配?Rails Postgres ILIKE反向
基本上,我可能有一個字符串,如「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的'name'項是 'Microsoft Windows XP中'而且我通過你的建議碰到數據庫的是'Windows XP SP2'。在這種情況下,我期望'Windows XP'能夠匹配。 'Issue.where(type::os).where(「name〜*?」,「Windows XP SP2」)'。什麼都不返回 – Godzilla74
是的,你是對的。你需要看全文搜索。簡單的例子'Issue.where(「to_tsvector(name)@@ to_tsquery('Windows | XP | SP2')」)' –
這工作......我只需要在刪除DB語句之前先分隔空格。想更新您的答案? – Godzilla74