2017-05-11 73 views
9

如何在SQL查詢中轉義'@'查詢。在SQL查詢/ ActiveRecord中轉義'@'字符

我正在使用ActiveRecord(3)。

suite_scenarios = Scenario.where(suite_id: suite_id) 
tag_pair = ["@regression","@daily_feature"] 

tag_pair_scenarios = suite_scenarios.where("metadata LIKE '%#{tag_pair[0]}%'").where("metadata LIKE '%#{tag_pair[1]}%'") 

回答

7

this answer解釋如何構建ILIKE查詢與佔位符條件的借款,似乎你可以構建這樣的查詢:

suite_scenarios. 
    where("metadata LIKE '%' || ? || '%'", tag_pair[0]). 
    where("metadata LIKE '%' || ? || '%'", tag_pair[1]") 

這對於保護您免受SQL注入的好處是,在case tag_pair來自用戶輸入(form params)。