如何实现一个 sql 解析器
接到一个需求,有些懵了 。
需求:
- mysql, Oracle, PostgreSQL, Redis 这几个db 要求对他们的查询语言检查,检查出访问哪些表和对应的字段。
一开始想了一个简单地方法 ,用sql中的关键字 加上可以访问的 表名 和字段 组成允许运行语句中满足的单词,超出的单词作为不符合sql语句,没有想到自己想简单了。 在网上找到了一个满意的工具 http://www.sqlparser.com/ ,但是不会java 和其他的 。希望能得到些建议,这个解析原理自己都一下子都想不通,如果建议用LEX ,yacc这类工具做得话就麻烦提供下 可参考案例吧。
学会使用packagist https://packagist.org/packages/phpmyadmin/...
@leo 看过 没有用,里面子查询 就不行。。。 ,试过后瞬间没有信心了。