【问题标题】:Running a select statement within an SQL custom function在 SQL 自定义函数中运行 select 语句
【发布时间】:2022-01-19 02:04:24
【问题描述】:

尝试在 SQL 中运行嵌套了 Select 语句的函数,但无法正常工作。对此很陌生,所以我可以使用帮助。这是我的代码:

  DELIMITER//
  CREATE FUNCION whereAndWhen(species, VARCHAR(255))
  RETURNS INT()
  BEGIN
      SELECT animals.zone
      FROM animals
      WHERE animals.species = species;
      RETURN;
   END; //
   DELIMITER ;

该函数的目标是接受一个动物物种名称并接收该动物居住的区域,所有这些都来自同一个表。有什么建议吗?

【问题讨论】:

    标签: mysql function


    【解决方案1】:

    在返回之前尝试使用 DECLARE 和 SET 来保存 SELECT 查询:

    DELIMITER//
        CREATE FUNCION whereAndWhen(species, VARCHAR(255))
        RETURNS INT()
        BEGIN
              DECLARE zoneNum INT;
              SET zoneNum = (SELECT animals.zone
              FROM animals
              WHERE animals.species = species);
        RETURN zoneNum;
        END; //
    DELIMITER ;
    

    【讨论】:

      【解决方案2】:

      您可以使用 SELECT INTO

      CREATE tABLE animals (zone int, species varchar(255))
      
      INSERT INTO animals VALUES (1,'Owl')
      
        CREATE FUNCTION whereAndWhen(_species VARCHAR(255))
        RETURNS INT
        BEGIN
            SELECT animals.zone INTO @zone
            FROM animals
            WHERE animals.species = _species;
            RETURN @zone;
         END;
      
      SELECT whereAndWhen('Owl')
      
      | whereAndWhen('猫头鹰') | | ------------------: | | 1 |

      db小提琴here

      【讨论】:

        猜你喜欢
        • 2013-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-07
        • 2020-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多