私の現在のアプリでは、演劇のリストがあり、クエリの演劇の名前でほぼ普遍的に並べ替えられています。現在、DB::select()
ステートメントを使用して単純に構築されていますが、多くのリファクタリングを行っている間に、Kohana の ORM ライブラリの使用を開始したいと考えています。問題は、通常、実際の劇名でソートするのではなく、処理されたバージョンでソートし、記事などを取り除いてそれでソートするという事実から生じます (そのため、モルモン書は、 Ts)。それを ORM モデル定義に引き継ぐ方法がわかりません。
選択コードは次のようになります (要約):
DB::select(column, column,
DB::expr("CASE WHEN SUBSTRING_INDEX(show_name, ' ', 1) IN ('a', 'an', 'the')
THEN SUBSTRING(show_name, INSTR(show_name, ' ') + 1)
ELSE show_name
END AS show_name_sort")
Kohanaが保存時に無視するが、order_by
呼び出しで引き続き使用できる偽のshow_name_sort列を作成する方法はありますか? または、並べ替えられたバージョンの名前を含む実際の列を作成する必要がありますか?