【发布时间】:2015-07-28 07:35:21
【问题描述】:
在我的 Rails 项目中,我有一个如下所示的表:
create_table "people", force: :cascade do |t|
t.string "first_name", limit: 255
t.string "last_name", limit: 255
t.string "middle_name", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
我有一个按名字或姓氏搜索的查询:
Person.where("lower(people.first_name) LIKE lower(:q) OR lower(people.last_name) LIKE lower(:q)", q: 'Melanie')
问题是:有没有办法重构这个查询以按名字、姓氏和中间名进行搜索?我的数据库是 Postgresql。
编辑:
当我有名字的人:比尔和姓氏:盖茨,并且当我设置“比尔盖茨”时,它不会搜索正确的记录。我想获取那条记录。
【问题讨论】:
标签: sql ruby-on-rails postgresql activerecord