在用户表中,我有一个名称字段,其中一些记录是名称,一些是电子邮件。我知道,糟糕的做法。除此之外。我想编写一个只返回电子邮件记录的命名范围。
我已尝试调整执行此查询的查询,但失败了。
MYSQL:
SELECT NAME
FROM USER
WHERE NAME LIKE '%@%.%'
用户模型:
scope :user_email, :conditions => ["name like '%@%.%'"]
任何帮助将不胜感激。
答案 0 :(得分:1)
试试这个:
scope :user_email, :conditions => ["name LIKE ?", '%@%.%']
您应该以这种格式提供字符串条件,以避免可能的SQL注入问题。
答案 1 :(得分:0)
试试这个:
named_scope :user_email, :conditions => ["name REGEXP ?", /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i]