【问题标题】:Randomly selecting records and grouping(randomly partitioning rows)随机选择记录和分组(随机分区行)
【发布时间】:2016-04-07 18:14:22
【问题描述】:

您好,我有员工表,我想将他们随机分配到不同的部门 让我们假设这样的员工表结构

id  staffname 
1   A    
2   B    
3   C    
4   D    
5   E    
6   F    
7   G    
8   H    
9   I  

有什么想法吗??我如何随机选择员工并将他们分配到多个组,以便没有员工会在部门中重复例如

1 部

 id  staffname 
 3   C        
 5   E    
 6   F       
 9   I

二部

id  staffname 
1   A        
4   D   
7   G 

第三部门

id  staffname 
1   A    
2   B    
8   H 

我正在尝试在 Laravel/Mysql 中执行此操作

【问题讨论】:

    标签: mysql random laravel-5


    【解决方案1】:

    您可以使用 Collection 中的 random 和 diff 方法。 考虑到您将搜索所有 Staff 实体,请尝试以下操作:

    $staff = Staff::all();
    
    $i = 0;
    while($staff->count() > 0) {
       $random = $staff->random(3);
       foreach($random as $s) {
          $s->departament_id = $i;
       }
       $staff = $staff->diff($random);
       $i++;
    }
    

    当然,您需要在保存之前检查departament_id,甚至在方法中创建一个,但这就是想法。

    希望对你有帮助……

    【讨论】:

    • 好的!告诉我它是否符合您的问题
    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2014-12-30
    • 1970-01-01
    相关资源
    最近更新 更多