FuelPHP等のフレームワークを使う時はついつい便利なのでクエリビルダを利用してるのですが、どうしても特殊な操作を行う時はクエリビルダを利用するほうが分かりづらくなってしまったり、自動的にエスケープされて利用できなかったりして、結局クエリ文を直書きしてしまっていました。 その一つとして、MySQLのorder by field機能がクエリビルダにメソッドが存在しないのですが、何とかクエリビルダを使いながら実現出来ないか調べてみました。 order by fieldって? そもそもorder by fieldとは、指定した順番に検索結果を並べかえる、というMySQL独特な記法です。 SELECT * FROM `table` ORDER BY FIELD( `column`, 3, 1, 2 ); のように記述すると、columnが3→1→2の値の順に取得出来ます。 order by fi
![FuelPHPのクエリビルダでMySQLのorder by fieldを利用するためにDB::expr()を使ってみた - SUSH-i LOG](https://cdn-ak-scissors.b.st-hatena.com/image/square/e29fd860a5c94ccaa1ce090cbe0c959350ac2663/height=288;version=1;width=512/https%3A%2F%2Fblog.sus-happy.net%2Fapi%2Ffuelphp-mysql-order-by-field%2Fogp.png)