laravel如何從mysql數據庫中隨機抽取n條數據


laravel如何從mysql數據庫中隨機抽取n條數據

一、總結

一句話總結:

inRandomOrder():$userQuestions=UserQuestion::where($map)->inRandomOrder()->take($neededQuestionNum)->get();

 

 

二、laravel如何從mysql數據庫中隨機抽取n條數據(高性能)

轉自或參考:laravel如何從mysql數據庫中隨機抽取n條數據(高性能)
https://blog.csdn.net/weixin_41981080/article/details/84452929

 

laravel如何高性能地從mysql數據庫中隨機獲取n條數據,有時候我們常常會需要從數據庫隨機獲取數據,比如:給工作人員隨機分配10個訂單,隨機從數據庫中隨機抽查100個用戶;這樣我們就需要隨機從數據庫獲取數據。

一、使用原生SQL從數據庫獲取100條數據

Mysql官網可以看到,可以讓ORDER BY RAND()LIMIT一起使用,可以用於從多行結果中選取隨機的一部分。

SELECT * FROM table WHERE name="" ORDER BY RAND() LIMIT 100;

那么在laravel中使用原生SQL也很簡單,如下所示:

$info = DB::select('SELECT * FROM table WHERE name="" ORDER BY RAND() LIMIT 100');

二、使用原始表達式從數據隨機獲取數據

我們都知道laravel的原始表達式,我們可以使用DB::raw('RAND()')從數據庫隨機獲取數據。同時你還可以使用orderByRaw('RAND()')從數據庫隨機獲取數據,和DB::raw('RAND()')效果一樣

$info=self::where('dealing','<>','')
        ->orderBy(DB::raw('RAND()'))
        ->take(5)
        ->get();

三、使用laravel的inRandomOrder方法隨機獲取數據

laravel中使inRandomOrder會對數據結果進行隨機排序,達到我們隨機從數據庫獲取數據的效果:

$info = DB::table('users')
            ->inRandomOrder()
            ->take(5)
            ->get();

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM