【发布时间】:2022-01-05 16:58:44
【问题描述】:
用户可以重新提交比赛结果,它会更新记分板上的结果,但是,它还会为“何时返回”功能创建结果保存,以便能够查看以前的结果以查看改进分数。
我遇到的问题是某些月份存在重复条目,数据库中唯一更改的是主键id、created_at 和updated_at。如果列值:discipline_n wheren is one 到 six 与任何其他列值都相同,则不应查询,即:
id 1 id 2
username foo username foo
discipline_one 4 discipline_one 4
discipline_two 5 discipline_two 5
discipline_three 8 discipline_three 8
discipline_four 9 discipline_four 9
discipline_five 4 discipline_five 4
discipline_six 6 discipline_six 6
created_at yesterday for example created_at today for example
updated_at yesterday for example updated_at today for example
应该被认为是重复的,因此从结果中删除。我尝试使用 Laravel 的 ORM 中内置的 distinct() 函数,但我仍然得到重复。这可以用 SQL 来完成吗?我的预期输出是:
id 2
username foo
discipline_one 4
...
其中id 1 被忽略为重复项。我试过了:
$waybackWhen = \App\Models\ResultSave::where('username', $result->username)
->distinct([
'discipline_one',
'discipline_two',
'discipline_three',
'discipline_four',
'discipline_five',
'discipline_six',
])
->get();
【问题讨论】: