在 mysql 数据库中,如何在保持选择输出顺序的同时将所有连续的重复项压缩为 1?
数据:
id fruit
----------
1 Apple
2 Banana
3 Banana
4 Banana
5 Apple
6 Mango
7 Mango
8 Apple
我想要的输出:
fruit
-------
Apple
Banana
Apple
Mango
Apple
在 unix 中使用 uniq 命令很容易做到这一点,但 'distinct' 不那么灵活。 ID 不是连续的,并且可能存在间隙。我在我的例子中过于简单化了。 选择可能是这样的:
数据:
id fruit
----------
100 Apple
2 Banana
30 Banana
11 Banana
50 Apple
62 Mango
7 Mango
4 Apple
最佳答案
试试这个 - 假设连续 ID 没有间隙。
SELECT T.fruit
FROM YOURTABLE T
LEFT JOIN YOURTABLE T2
ON T2.ID = T.ID + 1
WHERE T2.fruit <> T.fruit
OR T2.ID IS NULL
ORDER BY T.ID
关于mysql - 如何在 Mysql 中压缩连续的重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6011642/