Mysql にストア プロシージャがあります。これで、クエリを実行して文字列 @str = 5*2+1 を取得し、この文字列を計算して数値を返したいと考えています。私ができるSQLサーバーのように、exec ('select'+ @str)
11を返します
ありがとう
Mysql にストア プロシージャがあります。これで、クエリを実行して文字列 @str = 5*2+1 を取得し、この文字列を計算して数値を返したいと考えています。私ができるSQLサーバーのように、exec ('select'+ @str)
11を返します
ありがとう
PREPARE stmt1 FROM 'SELECT 5*2+1 as eval';
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
はい、技術的にはこれを行うことができますが、これは危険な形のSQL インジェクションであるため、おそらく非常に悪い考えです。
eval
人々が単純な計算を行うためにそれを使用したり、そのようなものを使用したりしないのには理由があります。
以下を使用できますが、動的クエリを使用する場合は SQL インジェクションに注意してください。
prepare stmt1 from 'select 5*2+1';
execute stmt1;
deallocate prepare stmt1;
コード例を使用して、これを試してください (SQL インジェクションに注意してください!)
set @Calc = concat('select ', '5*2+1', ' as result');
prepare stmt1 from @Calc;
execute stmt1;
deallocate prepare stmt1;