mysql - 在函数或PROCEDURE中创建SQL查询

标签 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 语句,但我想要更灵活的东西。

最佳答案

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

像这样(截断):

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

      RETURN rowCount;
 ...

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

希望有帮助

关于mysql - 在函数或PROCEDURE中创建SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33201885/

相关文章:

MySQL : Outer Join Query : Some alternate better approach (overriding field value by other table's field value only if available)

mysql - 如何将查询记录到 MySQL 上的标准输出?

sql - 当我知道值不会超过 255 时,设置 tinyint 字段是否有优势?

java - 如何修复 java.sql.SQLException。没有适合 jdbc 的驱动程序

MYSQL - 仅将 where 子句应用于某些字段

mysql - 通过输入限制 sql 函数生成的行数

sql - oracle 长到数字的转换

mysql - 重新排列 mysql 表

mysql - 选择字符串直到字符串中的第一个或第二个空格

mysql - Laravel/加密解密用户表