Wygląda na to, że istnieje kilka dobrych parserów.
Ten artykuł SO zawiera próbkę przy użyciu Entity Framework MS:
Parsowanie kodu SQL w C#
Wygląda na to, że ktoś inny stworzył własne i umieścił je w Code Project:
http ://www.codeproject.com/KB/dotnet/SQL_parser.aspx
Osobiście wybrałbym rozwiązanie Entity Framework, ponieważ zostało stworzone i utrzymywane przez MS, ale prawdopodobnie jest również ściśle powiązane z SQL Server. Ponieważ patrzysz na MySQL, możesz chcieć skorzystać z niestandardowego rozwiązania w Code Project, ponieważ jestem pewien, że możesz wtedy kodować w bardziej niestandardowych rozwiązaniach, zgodnie z wymaganiami gramatyki.
Niedługo będę z tego korzystać (dla Oracle, nie dla MySQL), więc poinformuj społeczność, jak działa rozwiązanie!
AKTUALIZUJ :
Właśnie wróciłem do tego i przeczytałem komentarze... po dalszej refleksji, naprawdę polecam ANTLR, ponieważ obsługuje wiele gramatyk. Po raz kolejny go nie używałem, więc dobrze będzie usłyszeć, jak się udało, a decyzja należy do Ciebie.
https://stackoverflow.com/questions/76083/parsing-sql-in-net/76151