たとえば、モデルがある場合:
User :firstname :lastname
joseph smith
anna bauer
... ...
そして、ユーザーを検索できる入力フィールド。異なる検索クエリは次のとおりです。
searchquery1: smith joseph
searchquery2: joseph smith
searchquery3: joseph
searchquery4: smith
SQL のどの検索クエリが最適でしょうか? 実際、次の検索クエリを想像できました。
where 'firstname OR lastname LIKE ?', "%#{search}"
初挑戦:
def self.search(search)
if search
select('CONCAT(vorname, " ", nachname) as full_name, *')
where ['vorname LIKE :s OR nachname LIKE :s OR full_name LIKE :s', :s => "%#{search}"]
else
scoped
end
end
エラー:SQLite3::SQLException: no such column: full_name
2 回目の試行:
def self.search(search)
if search
a = search.split
where('firstname OR lastname LIKE ?', a[1])
where('firstname OR lastname LIKE ?', a[2]) unless a[2].nil?
else
scoped
end
end
問題: 何も見つからない!