MySQL user defined variables
vil hjælpe dig i dette tilfælde.
Hver gang du ser en ny status, tildel 1
som rækkenummer til den tilsvarende række.
Og hvis du ser den samme status, som du så i den forrige række, så tildel i stedet et forhøjet rækkenummer.
På denne måde kan du endelig filtrere posterne med row number = 1
kun. Disse særlige poster viser faktisk forskel i forhold til deres umiddelbare forrige række
SELECT
*
FROM
(
SELECT
*,
IF(@prevStatus = YT.status_1, @rn := @rn + 1,
IF(@prevStatus := YT.status_1, @rn := 1, @rn := 1)
) AS rn
FROM your_table YT
CROSS JOIN
(
SELECT @prevStatus := -1, @rn := 1
) AS var
ORDER BY YT.ID
) AS t
WHERE t.rn = 1
ORDER BY t.ID