PhalconのQueryBuilderを使用して、フルモデルオブジェクトを返すクエリを作成しています。私は「セメスター」列でクエリを時系列順に並べ替える必要があります。問題は列の内容が「F」、「W」、「G」、「S」です。これはソートする値が必要な順序です。したがって、「F」を含むすべての行が最初に来て、 W "などアルファベット順ではない列でクエリを並べ替える方法
最初に私はMySQL FIELD()関数を使って注文しようとしましたが、例外を解析していましたので、PDOがサポートしているとは思いません。私はいずれかの方法で文書を見つけることができませんでした。
次に、QueryBuilderの->columns()
メソッドを使用しようとしましたが、すべての列の名前が変更され、戻り値の型がモデルオブジェクトではありません。
QueryBuilderをドロップし、生のSQLクエリを使用することはできません。私は、複雑なフレームワークをQueryBuilderの周りに構築しており、書き直すにはあまりにも多くの作業が必要です。
最後に、 "F"が0、 "W"が1などのように、データベースに "semester"がどのように格納されているかを変更するだけです。コードで作業する
アイデア?
これは作業にかなり近いです。このフォーマットは、例外を引き起こしたので、私はそれ以外の場合の形式に変更された: CASE 学期 WHEN 'W' THEN 1 WHEN 'G' THEN 2 ときに 'S' 3 ときに 'F' 4 終わり – Pickle