编写MySQL函数,其中条件条件中和条件条件中使用变量allowed_product的地方都有SELECT Count(*)语句。
但是代码无法将变量值用作列名。
当我在查询的“ WHERE”部分中对列名进行硬编码时,它起作用。
SET allowed_product = REPLACE(allowed_product_name," ","_");
SELECT COUNT(*) FROM `v_indexing` WHERE allowed_product = temp_code INTO @existance;
我希望该计数为1,因为temp_code在索引编制中的计数为1,但它一直返回0。
尝试了以下操作,并给了我一个错误“存储的函数或触发器中不允许使用动态SQL”。
SET @query = CONCAT("select count(*) FROM `v_indexing` WHERE `", allowed_product,"` ='", temp_code,"' into @existance;");
PREPARE stmt FROM @query;
EXECUTE stmt;
如何在SELECT语句中使用变量值?请注意,硬编码是不可能的,因为值是动态的。