首页 > 解决方案 > MariaDB/MySQL 函数 Select into 返回多于一行,3 个变量

问题描述

我目前正在学习 SQL,我们使用 MariaDB 和 Toad for MySQL 作为我们的图形编辑器。目前,我们必须创建一个返回 3 个不同变量的函数。

SELECT ourFunction(c.dni), v.CV, cl.nom_color
INTO @var_age, @var_cv, @var_color
    FROM vehicle v
    INNER JOIN client c
      ON c.dni=v.dni
    INNER JOIN color cl
      ON v.color=cl.cod_color

我们需要每个变量给我们一个准确的值,以便我们可以在另一个函数上使用它。目前的问题是我们无法在变量上得到我们想要的结果。

客户与车辆 1:N

车辆与颜色 1:1

ourFunction 计算客户的年龄。这就是它的作用:

DELIMITER //
  CREATE FUNCTION ourFunction(dni varchar(9))
  RETURNS tinyint(3)
  BEGIN
   select TIMESTAMPDIFF (YEAR, birth_date, CURDATE()) AS age
INTO @age
FROM client c
WHERE c.dni=dni;
RETURN @age;
  END //
DELIMITER ;

标签: mysqlvariablesinsert-into

解决方案


推荐阅读