我有一个具有以下结构和数据的表:

id | type | title
--------------------------
1  | 1    | test 1
2  | 1    | test 2
3  | 2    | test 3
4  | 2    | test 4
5  | 1    | test 5


我需要使用相同的type字段值对邻居行进行分组。

所以结果应该像这样:

type |
------
1    |
2    |
1    |


提前致谢。

最佳答案

这应该可以解决问题..使用用户定义的变量。

SELECT
    type
FROM(
    SELECT
        type,
        if(@a = type, @b, @b := @b + 1) as grouping_col,
        @a := type
    FROM testing
    JOIN (select @a := 1, @b := 0) as temp
) as t
GROUP BY grouping_col;


SQL FIDDLE一起玩

09-10 10:15
查看更多