当前位置:  开发笔记 > 后端 > 正文

mariaDB中的汇总函数

如何解决《mariaDB中的汇总函数》经验,为你挑选了1个好方法。

我是mariadb的新手,我使用MySQL开发某些东西,切换到mariadb后不起作用,我发现的错误部分位于'JSON_ARRAYAGG',以前我使用JSON_ARRAYAGG将结果按组组合为数组如下

SELECT column1, JSON_ARRAYAGG(column2) AS column2 FROM table GROUP BY column1;

转型

column1    column2               column1    column2
1            a                      1       ['a','b']
1            b                      2       ['cc','dd']
2            cc          --->       3       ['e']
2            dd
3            e

mariadb中有办法吗?先感谢您!



1> 小智..:

在MariaDB v10.3.3中创建聚合函数:

DELIMITER //

DROP FUNCTION IF EXISTS JSON_ARRAYAGG//

CREATE AGGREGATE FUNCTION IF NOT EXISTS JSON_ARRAYAGG(next_value TEXT) RETURNS TEXT
BEGIN  

 DECLARE json TEXT DEFAULT '[""]';
 DECLARE CONTINUE HANDLER FOR NOT FOUND RETURN json_remove(json, '$[0]');
      LOOP  
          FETCH GROUP NEXT ROW;
          SET json = json_array_append(json, '$', next_value);
      END LOOP;  

END //
DELIMITER ;

并像这样使用它:

SELECT column1, JSON_ARRAYAGG(column2) AS column2 FROM table GROUP BY column1;

将工作。

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有