このような問題を解決する1つの方法は、ユーザー変数でサブクエリを使用することです。ユーザー変数を使用して前の行の色の値を追跡し、外部クエリのwhere句でユーザー変数を使用して、返す行をフィルタリングできます。
次のようなものを試してください:
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