我有一个包含各种活动和散列的活动表(actorEntity|subjectEntity|activity-type)
可能存在用户在几秒钟内执行完全相同的活动两次的情况,这意味着数据库中将有两个相邻的行具有完全相同的数据。
对于某些用例,我们不想显示重复的活动,因此我们现在根据哈希过滤掉应用程序中的重复活动。唯一的问题是这些活动在某些情况下也会被分页,这意味着从应用程序中的结果集中提取记录与分页有关。
我正在寻找一种在 SQL 中执行此操作的方法,以便可以在数据库级别完成分页。
给定数据:
id | message | from | hash
-------------------------------------
1 | hello | bryan | b-hello
2 | goodbye | bryan | b-goodbye
3 | goodbye | john | j-goodbye
4 | goodbye | john | j-goodbye
5 | hello | john | j-hello
6 | goodbye | john | j-goodbye
我想检索以下结果集:
id | message | from | hash
-------------------------------------
1 | hello | bryan | b-hello
2 | goodbye | bryan | b-goodbye
4 | goodbye | john | j-goodbye
5 | hello | john | j-hello
6 | goodbye | john | j-goodbye
请注意,虽然第 3 行和第 4 行相同,但只有一个在所需的结果集中,因为它们是相邻的。即使第 6 行是相同的散列,它也应该包含在结果中,因为它不与另一个相同的散列相邻。
我不在乎结果中返回了哪些相邻的行,因为它们是相同的。
我正在使用 MySql 5.5。