MySQL转换为十进制,精度可变

MySQL转换为十进制,精度可变,mysql,Mysql,我有一个MySQL函数,其中我有一个十进制转换,如下所示 DECLARE len INT; SET len = 10; CAST((COUNT(*) * 1.5) AS DECIMAL(len)) 然而,当我运行它时,我得到了一个错误 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use ne

我有一个MySQL函数,其中我有一个十进制转换,如下所示

DECLARE len INT;
SET len = 10;
CAST((COUNT(*) * 1.5) AS DECIMAL(len))
然而,当我运行它时,我得到了一个错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'len)

我想要的是在
中使用变量len作为DECIMAL()
表达式。

MySQL不允许使用变量来定义数据,因此不能使用变量来指示十进制数据类型的精度或比例

您所能做的就是通过字符串连接创建适当的sql命令,并使用

预处理语句的唯一缺点是它们不会在函数的上下文中执行。因此,如果计划稍后在函数中使用结果,则可能会遇到一些问题

您可以在函数中使用允许的最大精度值,而不是尝试在代码中动态设置它,或者将应用程序端的输出格式化为正确的位数