我正在使用Rails/ActiveRecord/Postgres。下面是一個簡單的測試字符串我想匹配 -Postgres正則表達式逃脫美元符號
:sample_data => "$$352054054640611,1010,2015/02/24,05:20:30,40.28370,-111.65530,1437.1,0,0,0,0,0.0,7,0.9,1010,0.0,12.2,8,1,0,81.3##"
我只是想查詢第一個逗號(例如:1010)後的第一個數字。在Rails中,我期待着做這樣的事情。
number = "1010"
Model.where("sample_data ~* ?", "\$\$.*," + number + ",.*")
問題是它看起來像Postgres不允許我像我希望的那樣逃脫兩個美元符號。
編輯
當我運行Model.where("sample_data ~* ?", "\$\$.*," + number + ",.*").to_sql
我得到 -
"SELECT \"Model\".* FROM \"Model\" WHERE (sample_data ~* '$$.*,1010,.*')"
您可以添加'Model.where(「sample_data〜*?」,「\ $ \ $。*,」+ number +「,。*」)。to_sql'的結果 – max
@max我更新了我的問題結果 –
嗯,也許你需要雙重逃脫? 'Model.where(「sample_data〜*?」,「\\ $ \\ $。*,」+ number +「,。*」)' – max