我正在 MySQL 中创建一个存储过程,需要将 SQL 查询的结果分配给一个变量。问题是为了创建 SELECT 语句,我必须使用 CONCAT() 函数,因为我正在传递参数。
好吧,看来您不能在 CONCAT 函数中使用变量。关于如何实现这一目标的任何想法?我正在尝试编写的程序如下:
DELIMITER //
CREATE PROCEDURE `my_proc` (IN tbl VARCHAR(20), IN col VARCHAR(20), IN id INT)
BEGIN
DECLARE @myval VARCHAR(100);
SET @t1 =CONCAT('SELECT ',col,' FROM ',tbl,' INTO @myval WHERE id = ',id );
PREPARE stmt1 FROM @t1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END //
执行此操作会给我一个 SQL 语法错误。