Une façon de résoudre un problème comme celui-ci consiste à utiliser une sous-requête avec une variable utilisateur. Vous pouvez suivre la valeur de couleur de la ligne précédente à l'aide de la variable utilisateur, puis utiliser la variable utilisateur dans la clause where de la requête externe pour filtrer les lignes que vous renvoyez.
Essayez quelque chose comme ceci :
select id,this_color as color
from
(
select id,@last as last_color,@last:=color as this_color
from your_table
order by id
) as sub
where this_color != last_color