问题描述
对于MYSQL查询,如:
SELECT * from <<table>> where (a=1 and b<4) and c is between 1 and 4
我需要在JAVA中开发一个where子句过滤器,这样where子句过滤器的工作就是以编程方式完成而不是使用DB;
(a=1 or b<4) and c is between 1 and 4
问题包括两种操作:
以下是我的方法:
将单独的中缀符号设为前缀格式: inequality_operator(操作数,值)。
=(a,1)
>(b,4)
between(c,(1,4))
将带括号的不等式与conjuncts连接起来。大括号是合并操作的指标。
AND {=(a,1),>(b,4)}
between(c,(1,4))
并最终确定括号优先级之后的最终连接。
AND{AND {=(a,1),>(b,4)} , between(c,(1,4)) }
问题:
对于基于括号优先级的不等式分组,我需要帮助,以便使用哪个数据结构来实现此目的,以便为表达式树适当地设计节点。