输入一段 mysql 的查询语句, 匹配出查询的字段和条件?

2018-04-05 22:34:45 +08:00
 TomorJM
select salary from t_person where age=10

匹配出: 要 select 的字段为: salary 条件(key:value): age:10

实现思路我想到的只有正则匹配, 但是如何能覆盖所有情况呢?

2236 次点击
所在节点    程序员
3 条回复
hotsun168
2018-04-05 22:56:51 +08:00
Druid 有个 sqlparser。可以完整解析 sql 语句。获取各个部分。
ppyybb
2018-04-06 10:57:02 +08:00
手写一个 parser,维护性和扩展性都好得多。
首先你要界定输入 sql 的范围,是不是所有标准的 sql 选项都要支持?然后写个递归下降的 parser 应该就可以解决了
farseeraliens
2018-11-28 07:30:35 +08:00
boost spirit qi

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/444558

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX