MySQL 函数通过一次选择声明 2 个变量

标签 mysql mysql-workbench create-function

我想知道如何创建一个使用 1 个 select 语句声明 2 个变量的 MySQL 函数。 像这样的事情:

CREATE FUNCTION  `inHashtagCampaign` (campaignId INT,startDateTime DATETIME,endDateTime DATETIME)
RETURNS TEXT
LANGUAGE SQL
DETERMINISTIC
BEGIN 
    DECLARE result TEXT;
    DECLARE limit BIGINT(11); 
    DECLARE suspended TINYINT(1);
    #
    #I don't know how to do this, but I'd like to use the result of this query:
    #
    result = SELECT `limit`,`suspended` FROM `settings` WHERE `campaignId` = 2;
    limit = result.limit;
    suspended = result.suspended;
END;

我知道这个功能还远未完成,但我已经有点陷入困境了。

最佳答案

我认为你想做的是这样的

DECLARE @limit BIGINT(11); 
DECLARE @suspended TINYINT(1);

SELECT @limit := `limit`, @suspended := `suspended` FROM `settings` 
WHERE `campaignId` = 2;

(或)

DECLARE limit1 BIGINT(11); 
DECLARE suspended1 TINYINT(1);

SELECT `limit`,`suspended` into limit1, suspended1
FROM `settings` WHERE `campaignId` = 2;

关于MySQL 函数通过一次选择声明 2 个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30556759/

相关文章:

sql - 在 SQL 中创建和更改表值函数时对象类型不兼容

mysql - 如何在sql中查找 "dirty'状态床和 "Completed"状态床之间的时间差

php - Web 应用程序 - 显示月份功能的 slider

MySQL:在单个查询中更新列的多个值

mysql - 关系数据库,多对多

mysql - 不允许添加外键

postgresql - 创建接受任何类型参数的函数(如 concat)

C# EF 将记录添加到客户表,其中包含 Zip 表的外键

php - 如何在对话框中回显日期的 jQuery AJAX POST 值