2017-07-18 30 views
0

Laravelを使用すると、列の昇順で並べ替えることができますが、最後には0になります。これは通常のSQLでのやり方です:Laravel:列ASCをソートしますが、最後に0が表示されます

SELECT * FROM your_table ORDER BY your_field = 0, your_field; 

私はLaravelのやり方を知りたいと思います。

多くのお礼ありがとうございます

+0

あなたは 'DB :: raw'を使ってみたことがありますか? –

答えて

0

orderByRaw機能を試すことができます。例えば

$data = new YourModel(); 
$data = $data->orderByRaw('your_field = 0', 'ASC', 'your_field')->get(); 
+0

あなたのコードは整数を適切にソートしないと思います。 $データ=新しいYourModel(); $データ= $ data-> orderByRaw( 'your_field = 0、your_field ASC') - > get(); ' –

0

私たちは多分DB::raw、その使用法を使用することができると思います。

DB::select(DB::raw("SELECT * FROM your_table ORDER BY your_field = 0, your_field")); 
+0

ありがとう回答。これに対してLaravelはクエリを作成していますか? –

+0

はい、確かめてください[こちら](こちら)(https://laravel.com/docs/5.4/queries#raw-expressions) –

+0

ドキュメントを共有していただきありがとうございます。私はRAWを使用しないソリューションを探しています。とにかくありがとう。 –

関連する問題