可以使用MySQL中的数学函数解释和操作字符串吗?

时间:2016-10-28 11:21:20

标签: mysql sql select math

我想使用SELECT选择字符串的最终值(例如SelectedItem)。我想知道MySQL中是否存在函数或方法。

示例:

'3+4'

结果是:

SELECT ('4+1*3') as VALUE;

1 个答案:

答案 0 :(得分:0)

您可以分三步完成:

  1. 将查询合并为单个字符串
  2. 从此字符串
  3. 创建预准备语句
  4. 执行上述声明
  5. 这样的事情:

    SET @query = CONCAT('SELECT (', '4+1*3', ') AS VALUE');
    PREPARE stmt FROM @query;
    EXECUTE stmt;
    

    请注意,这不仅仅是评估数学表达式。恶意用户可以在此处向查询中插入几乎任何内容,因此您可以接受最糟糕的SQL注入攻击,除非您仔细清理粘贴到查询中的字符串以仅允许数学表达式。

    请注意,我认为这种操作无用的应用程序。我要说如果你必须评估任意字符串,你可能最好在应用程序代码中这样做,而不是在数据库中。