我不确定如果没有存储过程这是否可能,但我希望这是可能的:
我的数据库中有一个列,用于存储诸如3 < x < 5
or20 >= x >= 10
等信息。如果我们将 # 插入 ,我需要评估表达式是否为真x
。
目前,我正在使用正则表达式和 eval 的组合来确定表达式是否为真,如下所示:
$evalExpression = '3<x<5';
$evalValue = 4;
preg_match("#^(.*?)(<=|>=|<|>)(.*?)(<=|>=|<|>)(.*?)$#", $evalExpression, $evalPieces);
if (eval("return {$range_pieces[1]} {$range_pieces[2]} $response && $response {$range_pieces[4]} {$range_pieces[5]};")) {
return true;
}
但是,我试图找出一种方法,我可以单独使用 SQL(MySQL) 来完成此任务。例如:
SELECT 3 < 4 && 4 < 5 FROM table X
有谁知道这是否可能?是否需要存储过程来完成这样的事情?我确信不同的数据库架构会使这更容易,但我继承了这个结构,并试图在改变架构之前弄清楚我的需求是否可以满足。
谢谢!