Laravel Php 从 MySQL 查询中随机获取结果。

23 浏览
0 Comments

Laravel Php 从 MySQL 查询中随机获取结果。

这个问题已经有了答案:

Laravel - Eloquent或Fluent随机行

我找不到在laravel mysql中从一个集合中显示随机结果的方法。我的查询:

public function getTabletsProducts()
{
    return DB::table('products')
        ->orderBy('created_at')
        ->where('categoryName', 'All Tablets')
        ->where('sellingPrice', '<', 1000) ->take(6)
        ->orderByRaw("RAND()")
        ->get();
}

奇怪的是,我认为使用RAND会完成工作,但我的结果使用或不使用(ran)显示相同的值。

任何帮助都将受到赞赏。

admin 更改状态以发布 2023年5月21日
0
0 Comments

我不确定,但我认为这是因为你一开始取6个项目,然后随机订购它们。所以你总是得到相同或接近的结果。如果我是你,我会尝试这个方法:

public function getTabletsProducts()
{
return DB::table('products')
    ->where('categoryName', 'All Tablets')
    ->where('sellingPrice', '<', 1000)
    ->orderByRaw("RAND()")
    ->orderBy('created_at')
    ->take(6)
    ->get();
 }

0
0 Comments

您应该使用take(6)->inRandomOrder()->get()。这样应该就可以解决问题了。

0