laravel模型查询且进行whereIn排序怎样实现
这篇文章主要介绍“laravel模型查询且进行whereIn排序怎样实现”,有一些人在laravel模型查询且进行whereIn排序怎样实现的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。
这篇关于“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排序怎样实现”的文章就介绍到这了,更多相关的内容,欢迎关注博信,小编将为大家输出更多高质量的实用文章!
版权声明
本文仅代表作者观点,不代表博信信息网立场。