我有一个存储函数,需要在表格前面添加一个数值
如何在 SELECT 中使用 @packages_plu 等?
CREATE DEFINER=`fs01`@`%` FUNCTION `pack_isp`(fk_packages_id INT , c TEXT) RETURNS decimal(10,2)
BEGIN
DECLARE p DECIMAL(10,2);
SET p = 0;
SET @packages_plu=CONCAT(c,'_packages_plu');
SET @products= CONCAT(c,'_products');
SET @packages= CONCAT(c,'_packages');
SELECT
SUM(d.quantity * p.price_each_inc)
INTO p FROM
1_packages_plu d
LEFT JOIN
1_products p ON d.fk_products_id = p.id
LEFT JOIN
1_packages g ON g.id = fk_packages_id
WHERE
d.fk_packages_id = fk_packages_id;
RETURN p;
END
最佳答案
您可以使用准备好的语句来完成此操作,虽然有点笨拙,但它确实有效。
请参阅此处的手册: http://dev.mysql.com/doc/refman/5.6/en/sql-syntax-prepared-statements.html
关于mysql 在表名中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27875338/