mysql 在表名中使用变量

标签 mysql

我有一个存储函数,需要在表格前面添加一个数值

如何在 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/

相关文章:

mysql - 特定顺序下的匹配表

php - 使用 PHP 和 MySQL 验证 Android 登录

c# - 数据网格中出现重复的列

mysql - 如何在VB.NET中连接 Crystal 报表和MySQL

mysql - SQL中按多列分组

php - 将数组保存在数据库的一个字段中还是将每个值保存在单独的字段中?

php - 使用 mysql_real_escape_string 清理我的查询

sql - 有没有办法同时搜索 2 个或更多字段?

java - 我不知道还能做什么 sql/java

mysql - SQL,如何从特定的起始编号ID INSERT INTO 表