SQL解析

乱术 2016-09-19 02:29:22
相关sql解析: 应该可以用开源的东西 把sql语句 直接解析获取 所有字段 字段对应的值 以及执行先后顺序(比如sql语句中and条件先执行,括号先执行等)
例如:select * from t where id = 3 and (name = 'abc' or time > 100 and time <80
解析出值:3, abc,100,80
字段:id , name , time,time
比较运算符:=,=,>,<
.....
主要是执行先后顺序,怎么解决。有木有相关的方法,求推荐指点。
...全文
501 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2016-09-20
  • 打赏
  • 举报
回复
如果你能实现这个sql解析,就已经实现了数据库的一半的功能了,实际上不仅是解析,还有sql的优化,因为这个可能会改变执行的先后顺序,可以看看 msyql的源代码。
lg314 2016-09-20
  • 打赏
  • 举报
回复
编译原理里面有这些东西,感觉还是略麻烦
乱术 2016-09-20
  • 打赏
  • 举报
回复
卖水果的net 2016-09-19
  • 打赏
  • 举报
回复
引用 2 楼 sinat_32349327 的回复:
有没有什么方法可以分别解析出这些值,字段,运算符。
没有研究过这个,不过你有时间可以看看 sqlite 的源代码,这里都有些解析的过程
乱术 2016-09-19
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
先* / 再 + - 逻辑运算顺序 : 括号 > not > and > or
有没有什么方法可以分别解析出这些值,字段,运算符。
卖水果的net 2016-09-19
  • 打赏
  • 举报
回复
先* / 再 + - 逻辑运算顺序 : 括号 > not > and > or

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧