mysql - 如何在存储过程的json字符串中添加变量?
问题描述
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure1`(
out try varchar(50)
)
BEGIN
select @var1 :=count(*) from book.books;
select @var2 :=count(*) from book.authors;
set try = ({"Count1": @var1, {"Count2 : @var2});
END
预期输出 {"Count1": 79, {"Count2 : 50} 因为分别有 79 和 50 个条目
解决方案
您可以使用下一个存储过程来实现此目的:
CREATE DEFINER=`root`@`localhost` PROCEDURE `test`()
BEGIN
DECLARE a INT DEFAULT 0;
DECLARE b INT DEFAULT 0;
SELECT COUNT(*) INTO b FROM `books`;
SELECT COUNT(*) INTO a FROM `authors`;
SELECT JSON_OBJECT(
'books', b,
'authors', a
) AS 'Result';
END$$
DELIMITER ;
推荐阅读
- reactjs - 如何在 React 中触发多个组件更高的功能?
- python - 如何在图片之间添加等待
- typescript - 如何在打字稿中安全地查询派生对象的属性?
- xml - Kentico 动态页面类型字段和更新 ClassSearchSettings
- r - 如何使用 R 在基于代理的建模中管理内存
- java - 使用接口通过两个活动传递数据
- scala - 使用 udf 选择数据框的列
- woocommerce - 有什么方法可以让 WooCommerce REST API 对客户友好?
- swift - 'init(source:)' 在 OS X 10.14 中被弃用:Core Image Kernel Language API deprecated
- list - 用 Haskell 中的列表表示集合论概念