douzha6055 2017-10-02 10:21
浏览 135
已采纳

Laravel从表中选择随机id

i want to select random id from inserted data into table by this code, this code work fine when i dont have deleted row(s) from table, how can i manage or skip deleted row(s) on this part of code:

rand($minId, $maxId)

code:

$minId = DB::table('channel_image_container')->min('id');
$maxId = DB::table('channel_image_container')->max('id');

while (!$c = DB::table('channel_image_container')->find(rand($minId, $maxId))) {
}

echo json_encode([
    'path' => 'images/' . $c->file_name,
    'content' => $c,
    'parent' => DB::table('channel_content_type')->where('id', $c->content_id)->first()
]);

this part of code is best solution?

while (!$c = DB::table('channel_image_container')->find(rand($minId, $maxId))) {
}
  • 写回答

2条回答 默认 最新

  • douchen2595 2017-10-02 10:27
    关注

    I would take advantage of inRandomOrder() (Laravel >= 5.2):

    $c = DB::table('channel_image_container')->inRandomOrder()->first();
    
    echo json_encode([
        'path' => 'images/' . $c->file_name,
        'content' => $c,
        'parent' => DB::table('channel_content_type')->where('id', $c->content_id)->first()
    ]);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料