o que há de errado com a consulta? ou código? [fechadas

Um usuário digita o caractere de pesquisa assim * "azul, verde amarelo, rosa vermelho, empilhamento acima do fluxo" * Agora eu quero colocar isso em array e procurá-lo usando o seguinte código,

string[] search = mysearch.Split(',');
List<Result> myresult = new List<Result>();

for (int kk = 1; kk < search.Length; kk++)
  {  


where += " And '%" + search[kk] + "%'";              
    OleDbCommand sqlcmdCommand0 = new OleDbCommand("select Distinct name from table1  where       search like '%" + search[0] + "%' " + where + " order by name", myCon);
     sqlcmdCommand0.CommandType = CommandType.Text;
      OleDbDataReader sda = sqlcmdCommand0.ExecuteReader();

 while(sda.read())
    {
         myresult.name= sda.getString(0);
         Result.add(myresult);
    }
}
return Result;

A consulta fica assim:

select Distinct name from table1 where search like '%blue%' And '%yellow%' And '%Green %' order by name

e deve ficar assim:

select Distinct name from table1 where search like '%blue%' And '%yellow Green %' order by name

mas o problema é que ela separa a string após o espaço que não está na vírgula, e eu quero colocar a string na matriz após as ocorrências da vírgula e não após o espaço entre o caracter

questionAnswers(3)

yourAnswerToTheQuestion