我需要找到包含給定子字串(藝術)的所有記錄,條件是給定子字串是字串中的完整單詞或字串中任何單詞的開頭。
樣本資料。程式
id | name
-----------
10 | Report of Quarter 1
11 | The Art Program
12 | The Artificial Program
從上面的資料中,我必須能夠得到記錄號 11 和 12 但不是 10。
我正在嘗試這樣
Program.where("name ~* ?",'art\b')
但它不作業
我也試過
Program.where("regexp_match(name, ?)",'/art\b/i')
這個也不起作用
任何幫助都是非常可觀的。謝謝!
uj5u.com熱心網友回復:
我猜你正在使用 Postgres,因為你用 regexp_match 舉了一個例子
試試Program.where("name ~* ?",'art\M'):)
您可以在 Postgres 檔案(“正則運算式轉義”部分)中看到隱藏,這\b意味著“退格,如在 C 中”,而\M“僅在單詞末尾匹配”
uj5u.com熱心網友回復:
您還可以使用查詢Like
keyword = "%#{params[:search]}%"
Program.where("name LIKE ?", keyword)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/497545.html
