函数json_object不存在

时间:2019-01-30 18:07:50

标签: mysql sql json

我尝试构建一个返回json的函数。

我将mysql工作台更新为8.0.14,并尝试了以下代码:

 SELECT JSON_OBJECT(
  'name_field', name_field,
  'address_field', address_field,
  'contact_age', contact_age
)
FROM contact;

但是出现以下错误:

  

错误代码:1305。FUNCTION datalog.json_object不存在

我认为json_object是标准的mysql函数,不是吗?

请参阅此处: JSON Object

1 个答案:

答案 0 :(得分:1)

您使用的是MariaDB,而不是MySQL,您的版本(MariaDB 10.1)与MySQL 5.7大致相当,但有一些重要区别。您的Workbench版本无关紧要-重要的是 server 版本。

https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/

  

MariaDB 10.1及更高版本不支持MySQL 5.7的打包JSON对象。 MariaDB遵循SQL标准,并将JSON存储为普通的TEXT / BLOB。如果要将JSON列从MySQL复制到MariaDB,则应将JSON对象存储在MySQL中的TEXT列中,或使用基于语句的复制。如果您正在使用JSON列并想要升级到MariaDB,则可以将JSON列转换为TEXT,也可以使用mysqldump将这些表复制到MariaDB。在MySQL中,根据json值比较JSON。在MariaDB中,JSON字符串是普通字符串,并作为字符串进行比较。

MariaDB 10.2.3添加了JSON_OBJECT支持。 https://mariadb.com/kb/en/library/json_object/