Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql函数中是否可以声明并返回多个列?_Mysql_Function - Fatal编程技术网

在mysql函数中是否可以声明并返回多个列?

在mysql函数中是否可以声明并返回多个列?,mysql,function,Mysql,Function,除了“价格”之外,我还想申报并返回第二列“税”,但我不知道如何正确处理 这是我想要实现的一个例子 DELIMITER $$ CREATE FUNCTION calcProfit(cost FLOAT, price FLOAT) RETURNS DECIMAL(9,2) BEGIN DECLARE profit DECIMAL(9,2); DECLARE tax DECIMAL(9,2); SET profit = price-cost; SET tax = cost*1.2;

除了“价格”之外,我还想申报并返回第二列“税”,但我不知道如何正确处理

这是我想要实现的一个例子

DELIMITER $$
CREATE FUNCTION calcProfit(cost FLOAT, price FLOAT) RETURNS DECIMAL(9,2)
BEGIN
  DECLARE profit DECIMAL(9,2);
  DECLARE tax DECIMAL(9,2);

  SET profit = price-cost;
  SET tax = cost*1.2;

  RETURN profit,tax;
END$$
DELIMITER ;

存储的例程有两种,“过程”和“函数”;函数用于返回可在表达式中使用的值,例如: 选择sayHello('Frank');选择countName('Frank')

存储过程更适合于该任务。但您可能希望在这个存储例程中添加更复杂的语句。。 无论如何,这将返回一行利润和税收

    DELIMITER //
    CREATE PROCEDURE calcProfit(IN cost FLOAT, price FLOAT) 
    BEGIN

      DECLARE profit DECIMAL(9,2);
      DECLARE tax DECIMAL(9,2);

      SET profit = price - cost;
      SET tax = cost * 1.2;

      SELECT  profit, tax;
   END
   //
   DELIMITER ;

   CALL calcProfit(1,2);

函数只能返回一个值。在表达式中调用函数时,如何使用多个值?也许您需要的是一个存储过程而不是函数,您可以返回一个JSON或其他类型的分隔字符串,然后将其解析为第二个函数供以后使用。