Det ser ud til, at der er et par gode parsere derude.
Denne SO-artikel har et eksempel, der bruger MS's Entity Framework:
Parsing af SQL-kode i C#
Det ser ud til, at en anden har rullet deres eget og lagt det op på Code Project:
http ://www.codeproject.com/KB/dotnet/SQL_parser.aspx
Personligt ville jeg gå med Entity Framework-løsningen, da den blev skabt og vedligeholdt af MS, men den er derfor sandsynligvis tæt forbundet med SQL Server. Da du kigger på MySQL, kan det være en god idé at vælge den tilpassede løsning på Code Project, da jeg er sikker på, at du så kan kode i flere tilpassede løsninger, som grammatikken kræver det.
Jeg vil snart bruge dette (til Oracle, ikke MySQL), så lad fællesskabet vide, hvordan løsningen fungerer!
OPDATERING :
Jeg vendte lige tilbage til dette og læste kommentarerne... ved nærmere overvejelse vil jeg virkelig anbefale ANTLR, da det understøtter flere grammatikker. Endnu en gang har jeg ikke brugt det, så det bliver godt at høre, hvordan det gik, og det er op til dig at bestemme.
https://stackoverflow.com/questions/76083/parsing-sql-in-net/76151