【发布时间】:2022-01-13 09:13:09
【问题描述】:
我有下表,例如
|----|-------------|-----|-----|--------------------|
| id |address | log | lat | timestamp |
|----|-------------|-----|-----|--------------------|
| 1 | New York |14.20|0.22 |2019-10-21 14:00:01 |
| 2 | New York |14.20|0.22 |2019-10-21 14:00:01 |
| 3 | New York |14.20|0.22 |2019-10-21 14:00:01 |
| 4 | Italy |10.36|0.75 |2019-10-21 14:00:01 |
| 5 | Spain |10.36|0.75 |2019-10-21 14:00:01 |
| 6 | London |10.36|0.75 |2019-10-21 14:00:01 |
|----|-------------|-----|-----|--------------------|
对于选择一个,我想要一个只有重复数据的数据数组。 也就是说,id 1 纽约及其数据、id 2 纽约及其数据、id 3 纽约及其数据以及意大利、马德里和伦敦的其他地区应该被删除,因为它们不是重复的 如果一个项目出现多次,则重复
我试过了
Address::groupBy('address')->having(DB::raw('count(*)'), ">", "1")->select('address')->get();
但是我所有的地址都被占用了 如何将我的重复项放回数组中?
【问题讨论】:
-
如果你想要一条记录然后使用
group_by,你可以添加有问题的预期输出。 -
为什么不使用 laravel distinct() 选择不同的值,然后使用这些 id 批量删除它们?
-
我不知道要使用 distinct
-
distinct 不起作用。它仍将包括重复的行之一(结果集的 ID 为 1、4、5、6)。 groupby / 拥有是要走的路