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条)

报告相同问题?

悬赏问题

  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据