【问题标题】:#1305 FUNCTION dbname.json_arrayagg does not exist#1305 函数 dbname.json_arrayagg 不存在
【发布时间】:2018-08-14 06:08:13
【问题描述】:

也许我错过了什么。但是为什么这个功能不存在呢?

根据文档,它应该是: https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html

版本:5.7.21-0ubuntu0.16.04.1

请有人帮帮我 :) 这个功能可以很好地帮助我。

【问题讨论】:

    标签: mysql aggregate-functions mysql-5.7


    【解决方案1】:

    JSON_ARRAYAGG 是在 MySQL 5.7.22 中引入的。

    如果函数名和括号之间有空格 (JSON_OBJECTAGG ("item", item.item_id))。 MySQL 默认将does not handle 函数名作为内置函数。

    您可以删除函数名称和括号之间的空格或使用 sql_mode IGNORE_SPACE。更容易不使用空间。

    【讨论】:

    • 该死,写在哪里?老实说,我想过,但我找不到它。
    • “在 MySQL 5.7.22 中添加。”在您链接的页面中;)
    • 我在5.7.28-0ubuntu0.16.04.2-log,我可以使用JSON_ARRAYAGG,但我不能使用JSON_OBJECTAGG。它说“JSON_OBJECTAGG 不存在”。有什么想法吗?
    • @hriziya 你用的怎么样?
    • 删除函数名和括号之间的空格,即使用JSON_OBJECTAGG("item", item.item_id)。为了使 MySQL 忽略该空间,您必须使用 sql_mode IGNORE_SPACE。更容易不使用空间。
    【解决方案2】:

    我面临着类似的问题(#1305 FUNCTION dbname.json_arrayagg 不存在)。任何人都可以解释什么是错的? XAMPP + PHP 版本 8.0.10 + 10.4.21-MariaDB

    SELECT JSON_OBJECTAGG(category_id,accuracy) FROM post_core_category GROUP BY post_core_id;
    

    【讨论】:

    • 我的解决方案。 REGEXP_REPLACE(GROUP_CONCAT(JSON_OBJECT(category_id, accuracy)), '(},{)', ',') 在 Mariadb 10.5 中似乎这个函数是活跃的。
    【解决方案3】:

    我遇到了同样的问题,请手动将您的 MariaDB 更新到 10.5.0

    小心您的数据!

    https://mariadb.com/kb/en/json_objectagg/

    JSON_OBJECTAGG MariaDB 从 10.5.0 开始

    在 MariaDB 10.5.0 中添加了 JSON_OBJECTAGG。

    【讨论】:

    猜你喜欢
    • 2016-09-21
    • 2020-10-11
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多