OR検索にて一つ目の条件に一致するものをふたつ目の条件よりも前に表示したい
ticker
とname
というカラムを持つCompany
モデルがあり、
ticker
に完全一致するかname
に部分一致する物を取り出したいので
Company.where('ticker=? OR name ilike ?', str, "%#{str}%")
としてるのですが、ticker
に完全一致するものを先頭にもってきたいと思っています。
はじめは検索クエリが2回走ってしまうことを無視して
Company.where(ticker: str) + Company.where('name like ?',"%#{str}%")
としようかと思ったのですが、これではArray
を返すのでPaginationの処理でこけてしまいました。
このように複数条件をOR
検索する時に
一つ目の条件に一致するものを先頭に持ってくるという処理に一般的な方法はありますか?