select salary from t_person where age=10
匹配出: 要 select 的字段为: salary 条件(key:value): age:10
实现思路我想到的只有正则匹配, 但是如何能覆盖所有情况呢?
1
hotsun168 2018-04-05 22:56:51 +08:00 via iPhone 1
Druid 有个 sqlparser。可以完整解析 sql 语句。获取各个部分。
|
2
ppyybb 2018-04-06 10:57:02 +08:00 via iPhone
手写一个 parser,维护性和扩展性都好得多。
首先你要界定输入 sql 的范围,是不是所有标准的 sql 选项都要支持?然后写个递归下降的 parser 应该就可以解决了 |
3
farseeraliens 2018-11-28 07:30:35 +08:00 via iPhone
boost spirit qi
|