Laravel 中如何从数据库中获取随机的数据?

http://laravel.com/

http://kejyun.github.io/Laravel-4-Docum ... roduction/
回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Laravel 中如何从数据库中获取随机的数据?

文章 yehlu »

https://laravel-china.org/index.php/wikis/16199

Laravel >= 5.2 可以使用:

User::inRandomOrder()->get();
或者随机读取一条信息:

User::inRandomOrder()->first();
请注意以下的这种查询方式只能支持 MySQL 数据库:

User::orderByRaw("RAND()")->get();
如果你自己要实现类似于 inRandomOrder 的功能,并支持不同的数据库驱动,可以参考以下:

use Illuminate\Database\Query\Builder;

Builder::macro('orderByRandom', function () {

$randomFunctions = [
'mysql' => 'RAND()',
'pgsql' => 'RANDOM()',
'sqlite' => 'RANDOM()',
'sqlsrv' => 'NEWID()',
];

$driver = $this->getConnection()->getDriverName();

return $this->orderByRaw($randomFunctions[$driver]);
});
回覆文章

回到「laravel」