为什么 mysql 程序 return 为空

why mysql procedure return null

我有一个简单的 mysql 过程,它必须 return 一个查询字符串。但是,它 return 几乎每次 QueryResult (列名)作为 <null> 值。

create procedure return_table_rename_query(
  IN targetTable VARCHAR(100),
  IN tblPrefix VARCHAR(100)
)
BEGIN
    SET @returnQuery = CONCAT('SELECT "MYSQLIMPORT can not rename table for target ', @targetTable, '";');
    SET @totalRows = (SELECT COUNT(*) FROM table);
    if IFNULL(@totalRows, 0) > 0
        then
          SET @returnQuery = CONCAT('drop table if exists table_name.', ...);
    end if;

    SELECT @returnQuery AS 'QueryResult';
end;

@targettable 与 targettable 不是同一个变量 - 您混合了用户定义的变量和参数变量,@targettable 似乎很可能为 null,如果 concat 中的任何元素为 null,则结果为 null。

请阅读How to declare a variable in MySQL?