これがストアドプロシージャなしで可能かどうかはわかりませんが、可能であることを願っています:
3 < x < 5
データベースにorなどの情報を格納する列があります。 20 >= x >= 10
# を に差し込んだ場合に式が true かどうかを評価する必要がありますx
。
現在、次のように、正規表現と eval の組み合わせを使用して、式が true かどうかを判断しています。
$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
これが可能かどうか誰にもわかりますか?このようなことを達成するには、ストアド プロシージャが必要でしょうか? 別のデータベース スキーマを使用するとこれが簡単になると確信していますが、私はこの構造を継承しており、スキーマを変更する前にニーズを達成できるかどうかを判断しようとしています。
ありがとう!