好吧我想使用Laravel Query生成器来检查特定用户的名称是否在列中出现两次。例如,在我的程序中,当一个新用户注册时,他被作为该用户的孩子随机分配给一个用户。所以新用户将有一个像parent_id这样的字段。一个用户不能有两个以上的孩子,所以我想查询我的数据库使用查询生成器以获得任何ID的ID不会出现两次在parent_id列Laravel查询生成器如何检查项目是否出现两次
回答
尝试这些
User::select('id', DB::raw('COUNT(*) as count'))
->groupBy('parent_id')
->having('count', '<' , 2)
->inRandomOrder()->first();
或更短的方式
User::select('id')->groupBy('parent_id')->havingRaw('COUNT(*) < 2')->inRandomOrder()->first();
在这里,您将在随机的方式,其外观DB
为parent_id
是小于2倍
希望这将有助于让parent_id
您。
我在找什么!非常感谢!对不起,最后一个问题。现在刚刚出现。如果我想这样做,我将如何做同样的查询。用户引用一个孩子(新用户),但已经有两个孩子,所以我想检查哪两个孩子没有两个孩子,所以我会让这个孩子成为新用户的父母? –
尝试'User :: where('parent_id',$ parent_id) - > select('id') - > groupBy('parent_id') - > havingRaw('COUNT(*)> 1') - > inRandomOrder() - > first();' –
如果记录存在,那么这个特定的父母有2个孩子 –
这是我的建议,而不是通过查询找出Builder中更好地使“PARENT_ID”列独特的,以及你可以做功能验证为 -
'parent_id' => 'required|unique:users'
希望这会帮助你。
这不是我想要使用它的上下文。我正在创建一个侦听器来侦听新的用户注册事件。当一个新用户注册时,我想将一个没有超过两个孩子的随机用户分配给这个新用户作为他的父母。因此,我将查询数据库中任何没有在其父ID字段中出现两次ID的随机用户 –
User::where('parent_id', $someId)->count();
我认为这是您正在查找的查询。它返回使用id
作为parent_id
的次数。然后,您可以使用if
语句来检查它是否少于两个。
您可以使用循环和随机数发生器来获得随机$someId
。
- 1. SQL查询到Laravel查询生成器
- 2. 查询到laravel查询生成器
- 3. Laravel查询生成器输出测试
- 4. 如何MySQL来laravel查询生成器
- 5. Laravel查询生成器firstOrFail()?
- 6. Laravel从查询生成器
- 7. Laravel。查询生成器GROUPBY
- 8. laravel mysql查询生成器
- 9. Laravel 5.5 - 如何检查查询构建器是否已成功插入数据?
- 10. Laravel 5:原生SQL查询生成器
- 11. 如何检查溢出是否发生?
- 12. 是否有SolrJ查询生成器?
- 13. 是否有SQLite3查询生成器?
- 14. 是否可以将DQL查询生成器转换为查询生成器?
- 15. 如何检查字符串是否只生成一次
- 16. 如何将正常的搜索查询转换成laravel查询生成器
- 17. 问题在查询生成器 - laravel 5.2
- 18. Laravel查询生成器加入为RAW
- 19. Laravel雄辩查询生成器
- 20. Laravel查询生成器WHERE NOT IN
- 21. Laravel查询生成器,其中
- 22. Laravel查询生成器 - 动态表名
- 23. 联盟laravel查询生成器DISTINCT
- 24. Laravel查询生成器加入
- 25. Laravel 5.4 - 查询生成器问题
- 26. 如何计算laravel查询项目?
- 27. SQL查询发现两次
- 28. 每次更改特定模型的查询生成器 - Laravel 5.3
- 29. laravel 5.4使用查询生成器的层次结构/树
- 30. Laravel 5.4来自两个不同表的查询生成器SUM()
子用户和父用户在同一个表**用户**表? – Hamelraj
是的。我不想使用雄辩的关系。只要查询建设者 –
先选择以前不在'paren_id'中的用户两次然后随机选择一个需要两个查询? – Hamelraj