假设我有这张桌子:
id | name
-------------
1 | john
2 | steve
3 | steve
4 | john
5 | steve
我只想要与前一行相比唯一的行,这些:
id | name
-------------
1 | john
2 | steve
4 | john
5 | steve
我可以通过使用这个查询来部分实现这一点:
SELECT *, (
SELECT `name` FROM demotable WHERE id=t.id-1
) AS prevName FROM demotable AS t GROUP BY prevName ORDER BY id ASC
但是,当我使用具有多个 UNION 和其他内容的查询时,这会变得很复杂。有没有一种简单的方法可以做到这一点(比如 GROUP BY,但比更具体)?