Этот тип выражения чаще всего выражается в виде дерева (иерархии), которое, как известно, раздражает запрос в SQL.
Предположим, что a
и b
на данный момент являются числовыми, а литералы ('1', '2') отличаются от переменных.
Table Nodes
id
type (Variable|Literal)
name (nullable for literal)
value
Table Operators
id
name (=, AND, OR, NOT)
leftNodeId
rightNodeId
Эта структура очень гибкая, но запрос ее для извлечения сложного выражения будет "забавным" (читай это "сложный").
И вам все равно придется сначала проанализировать структуру и оценить выражение после того, как оно было реконструировано.