我正在使用 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
yields
"SELECT `users`.* FROM `users` WHERE (email REGEXP '[@.]gmail.com')"
User.where("email REGEXP ?", "[@\.]gmail\.com").to_sql
yields
"SELECT `users`.* FROM `users` WHERE (email REGEXP '[@.]gmail.com')"
User.where("email REGEXP ?", "[@\\.]gmail\\.com").to_sql
yields
"SELECT `users`.* FROM `users` WHERE (email REGEXP '[@\\\\.]gmail\\\\.com')"
如何让Active Record正确转义SQL语句?
\\\
是好的一个很好的解释:https://dev59.com/nGrXa4cB1Zd3GeqPEO_E#13415109 - Nick Q.