實(shí)例如下所示:
$ids = [5,7,3,1,2]; $data = Content::whereIn('id',$ids) ->select('id') ->get(); //查詢(xún)結(jié)果是想按照wherein的順序排序 //正確寫(xiě)法 $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();
中午沒(méi)睡覺(jué)一直調(diào)試,心塞...
錯(cuò)誤寫(xiě)法
//錯(cuò)誤寫(xiě)法 $data = Content::whereIn('id',$ids) ->select('id') ->orderByRaw("FIND_IN_SET('id', "' . implode(",", $ids) . '"' . ")") ->get(); //該寫(xiě)法查詢(xún)順序是按照id大小正序排序
原因解析
//正確寫(xiě)法的sql語(yǔ)句為 select `id` from `contents` order by FIND_IN_SET(id, "5,6,7,4,2,1") asc //錯(cuò)誤寫(xiě)法的sql語(yǔ)句為 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()方法外面不要添加任何符號(hào)
以上這篇laravel 模型查詢(xún)按照whereIn排序的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
標(biāo)簽:香港 通化 佳木斯 阿克蘇 金華 寶雞 郴州 自貢
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《laravel 模型查詢(xún)按照whereIn排序的示例》,本文關(guān)鍵詞 laravel,模型,查詢(xún),按照,whereIn,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。