0
完全な文字列をDBの中で少しだけ一致させることは可能ですか?Rails Postgres ILIKE in reverse
基本的には、「Microsoft Windows XP Home Edition
」や「Microsoft Windows XP SP2
」のような文字列がありますが、私のDBには「Microsoft Windows XP
」があります。
現在、私はILIKE
を使用しています:SP2
部分が存在しないため
Issue.where(type: :os).where("name ILIKE ?", "%Windows XP SP2%")
一致を見つけることができません。
私はDBフィールドに一般的なものを入れて、入力がはるかに具体的であればマッチを見つけられるようにする機能がいくつかありますか?
これが私のDB内の 'name'のエントリは、 'Microsoft Windows XPの' です...動作するようには思えません私があなたの提案を介してDBに対して打ち勝っているのは、「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