$conditions是使用可能的组合以编程方式生成的,例如
A>B
A>B AND B=C
A>C AND C<B
A<B AND B<C AND A<C
etc etc
以上3个例子都是有效的。但是,某些条件,例如
A<B AND B<C AND C<A
对于 A、B、C 的任何给定值,永远不可能为真。
我们人类可以确定上述条件永远不会成立。但是如何使用 PHP/MySql/VB.NET/JavaScript 以编程方式进行呢?
好的,所以我们从某个地方开始,我尝试一个基本的解决方案。如我错了请纠正我。
如果您只有树列,您可以手动列出 27 七种可能性以及满足条件的解决方案示例(如果存在)
A=B and A=C and B=C 1,1,1
A=B and A=C and B<C No
A=B and A=C and B>C No
A=B and A<C and B=C No
A=B and A<C and B<C No
A=B and A<C and B>C No
A=B and A>C and B=C No
A<B and A=C and B=C No
...
A<B and A<C and B=C 1,2,2
...
A>B and A>C and B>C No
然后,您创建第二个表“可能”,其中包含所有可能的响应
A,B,C
1,1,1
1,2,2
...
现在对于每个 $condition,您只需针对可能的表进行测试
SELECT count(*) FROM possibles WHERE $condition
如果结果 >= 1,那么你知道你的条件是有效的