laravel 模型查詢按照whereIn排序的示例
更新時間:2019年10月16日 18:13:58 作者:llllllwwwww
今天小編就為大家分享一篇laravel 模型查詢按照whereIn排序的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
實例如下所示:
$ids = [5,7,3,1,2];
$data = Content::whereIn('id',$ids)
->select('id')
->get();
//查詢結果是想按照wherein的順序排序
//正確寫法
$data = Content::whereIn('id',$ids)
->select('id')
// ->orderBy(\DB::raw('FIND_IN_SET(id, "' . implode(",", $ids) . '"' . ")"))
// ->orderBy(DB::raw("FIND_IN_SET(id, '" . implode(',', $ids) . "'" . ')'))
// ->orderByRaw("FIND_IN_SET(id, '" . implode(',', $ids) . "'" . ')')
->orderBy(\DB::raw('FIND_IN_SET(id, "' . implode(",", $ids) . '"' . ")"))
->get();
中午沒睡覺一直調試,心塞...
錯誤寫法
//錯誤寫法
$data = Content::whereIn('id',$ids)
->select('id')
->orderByRaw("FIND_IN_SET('id', "' . implode(",", $ids) . '"' . ")")
->get();
//該寫法查詢順序是按照id大小正序排序
原因解析
//正確寫法的sql語句為 select `id` from `contents` order by FIND_IN_SET(id, "5,6,7,4,2,1") asc //錯誤寫法的sql語句為 select `id` from `contents` order by 'FIND_IN_SET(id, "5,6,7,4,2,1")' asc //或者 select `id` from `contents` order by `FIND_IN_SET(id, "5,6,7,4,2,1")` asc //FIND_IN_SET()方法外面不要添加任何符號
以上這篇laravel 模型查詢按照whereIn排序的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
PHP 使用pcntl和libevent 實現(xiàn)Timer功能
PHP 中實現(xiàn)Timer功能,中間使用到了php多線程,本文給出來pcntl的解釋。2013-10-10
PHP中empty和isset對于參數(shù)結構的判斷及empty()和isset()的區(qū)別
這篇文章主要介紹了PHP中empty和isset對于參數(shù)結構的判斷及empty()和isset()的區(qū)別的相關資料,需要的朋友可以參考下2015-11-11
PHP SPL標準庫之文件操作(SplFileInfo和SplFileObject)實例
這篇文章主要介紹了PHP SPL標準庫之文件操作(SplFileInfo和SplFileObject)實例,本文講解SplFileInfo用來獲取文件詳細信息、SplFileObject遍歷、查找指定行、寫入csv文件等內容,需要的朋友可以參考下2015-05-05
ThinkPHP5 框架引入 Go AOP,PHP AOP編程項目詳解
這篇文章主要介紹了ThinkPHP5 框架引入 Go AOP,PHP AOP編程,結合具體項目項目分析了ThinkPHP5 引入 Go AOP,PHP AOP編程相關概念、原理、操作技巧與注意事項,需要的朋友可以參考下2020-05-05

