转义SQL查询/ ActiveRecord中的"@"字符

Dav*_*est 9 sql activerecord

如何在SQL查询中转义"@"查询.

我正在使用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]}%'")
Run Code Online (Sandbox Code Playgroud)

mes*_*jah 7

借用这个解释如何使用占位符条件构造ILIKE查询的答案,您似乎可以构建您的查询,如下所示:

suite_scenarios.
  where("metadata LIKE '%' || ? || '%'", tag_pair[0]).
  where("metadata LIKE '%' || ? || '%'", tag_pair[1]")
Run Code Online (Sandbox Code Playgroud)

如果tag_pair来自用户输入(表单参数),这还有保护您免受SQL注入的额外好处.