假设我有一个用户的first_name
和last_name
。我知道用户的全名是“Johnny Appleseed”,因为我有一个用户全名作为字符串的大哈希。
当然,我可以先拆分每个字符串,然后像这样搜索:
User.where(first_name: 'Johnny', last_name: "Appleseed")
但是,我想知道是否有办法在查询中基本连接两者,基本上是这样的:
User.where('first_name + last_name = ?', 'Johnny Appleseed')
或者,如果我可以在User模型上使用full_name方法,并按此搜索?
def full_name
"#{self.first_name} #{self.last_name}"
end
User.where('full_name = ?', 'Johnny Appleseed')
答案 0 :(得分:3)
可能最简单的解决方案是:
User.where(%q(concat_ws(' ', first_name, last_name) = ?), 'Johnny Appleseed')