在函数或PROCEDURE中创建SQL查询

时间:2015-10-18 18:51:20

标签: mysql sql

我正在尝试在MySQL中创建函数来创建多个查询,例如:

    DELIMITER |
    CREATE PROCEDURE queryBuilder(_tableName varchar(100))
    BEGIN
          SET @str_query = 'SET @countRows = 0;SELECT COUNT(*) INTO @countRows FROM';
          SET @str_query = CONCAT(@str_query,_tableName, '; SELECT @countRows');

         PREPARE stmt1 FROM @str_query;

         EXECUTE stmt1;

   END|
   DELIMITER;

但它不起作用?我怎样才能改变工作?我知道我可以创建IF语句但我想要更灵活的东西。

1 个答案:

答案 0 :(得分:0)

我认为您需要在设置之前声明该变量。 (我也选择不在MySQL中使用保留字,即' count')

像这样(截断):

 BEGIN
      DECLARE rowCount INT;
      SET rowCount = 0;
      SELECT COUNT(*) INTO rowCount from _tableName;

      RETURN rowCount;
 ...

查看以下示例:http://www.mysqltutorial.org/mysql-stored-function/

希望有所帮助