Ett sätt att lösa ett problem som detta är att använda en underfråga med en användarvariabel. Du kan spåra färgvärdet från föregående rad med hjälp av användarvariabeln och sedan använda användarvariabeln i where-satsen i den yttre frågan för att filtrera raderna du returnerar.
Prova något sånt här:
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