【发布时间】:2015-07-26 17:45:37
【问题描述】:
我正在使用Active Record v4.2.1 使用正则表达式查询mySQL 数据库。我想创建以下 SQL:
SELECT `users`.* FROM `users` WHERE (email REGEXP '[@\.]gmail\.com')
但是,我似乎找不到使用 Active Record 创建 SQL 的正确方法。
User.where("email REGEXP ?", "[@.]gmail.com").to_sql
产量
"SELECT `users`.* FROM `users` WHERE (email REGEXP '[@.]gmail.com')"
User.where("email REGEXP ?", "[@\.]gmail\.com").to_sql
产量
"SELECT `users`.* FROM `users` WHERE (email REGEXP '[@.]gmail.com')"
User.where("email REGEXP ?", "[@\\.]gmail\\.com").to_sql
产量
"SELECT `users`.* FROM `users` WHERE (email REGEXP '[@\\\\.]gmail\\\\.com')"
如何让 Active Record 正确转义 SQL?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 activerecord rails-activerecord