当前位置: 首页 > 面试题库 >

MySQL错误代码:1305。MySQL客户端版本:5.5.52中不存在FUNCTION JSON_EXTRACT

苏翰学
2023-03-14
问题内容

目标:-json_extract不存在错误。

我确实有这样的消息正文。

  < message type = "chat"
  to = "socialapp_233@22.52.258.256"
  from = "socialapp_6@22.52.258.256/9fs4kgn090" > < body > {
    "opponent_xmpp_id": "socialapp_233@22.52.258.256",
    "latest_message_id": "6233"
  } < /body><active>http:/ / jabber.org / protocol / chatstates < /active></message >

我试图提取 opponent_xmpp_idlatest_message_id

为此,我写了如下查询。

SELECT  LEFT(ExtractValue( stanza, "//@from" ),LOCATE("@",ExtractValue( stanza, "//@from" )) - 1),
        LEFT(ExtractValue( stanza, "//@to" ),LOCATE("@",ExtractValue( stanza, "//@to" )) - 1),
        ExtractValue(stanza, "//body"),
        ExtractValue(stanza, "//@chattype"),
        TRIM(BOTH '"' FROM json_extract(ExtractValue(stanza, "//body"), '$.opponent_xmpp_id')) AS opponent_xmpp_id,
        json_extract(ExtractValue(stanza,"//body"),'$.latest_message_id') AS latest_message_id        
FROM
ofOffline

导致错误

按照我搜索其支持仅在> MYsql 5.7版本。

那么在MySQL客户端版本5.5.52中是否有任何函数可以像json_extract一样进行类似的工作?


问题答案:

mysql客户端的版本无关。该功能在mysql服务器中存在(或在您的情况下不存在)。因此,唯一相关的是mysql服务器版本。并且此功能仅在mysql服务器5.7及更高版本中可用。升级客户端无法解决问题,您需要升级服务器。

有没有解决的办法?是。PHP的json_decode

这可以工作,因为您的查询没有WHERE子句。您正在看整个桌子。因此,您可以轻松地获取所有数据和json_decode,然后在您的PHP代码中进行处理。如果您有很多数据,这将非常慢。



 类似资料:
  • 问题内容: 我正在使用phpmyadmin。我在mysql中使用触发器,该触发器在表中插入某些内容后会调用php脚本。我的触发器包含此内容。 但是我在尝试向表中插入内容时遇到了此错误。 (我的数据库名称是db)。谢谢。 问题答案: 不是标准的mysql函数。它由外部UDF插件提供,必须单独安装:https : //github.com/mysqludf/lib_mysqludf_sys#readm

  • 问题内容: 我创建了一个新的Rails项目,调用 然后当我在目录中运行 我收到关注错误 我见过其他人遇到此错误,但他们通常是linux用户,并且我正在运行Windows。我试图重新安装Rails(railsinstaller.org)和mysql 5.5。我既使用了32位版本,也使用了64位版本 问题答案: 这里似乎已经有几个问题。您尝试过他们的解决方案吗? 相关部分在这里:

  • 问题内容: 我是使用程序的新手,似乎无法使我的工作正常。我正在使用MySQLv5.1.36,并在WAMPP服务器上使用MySQL Console输入代码。如果我去(重新)创建程序。我收到错误#1304(42000)。 但是,如果我尝试使用该过程,则会收到错误#1305(42000)。 如果该程序存在于一个程序中,怎么可能不存在于另一程序中呢?我究竟做错了什么。 问题答案: 我相信问题是 发生第一个

  • 基本上,我希望能够有一个shell脚本,比如: 对于oracle,我只需在sql命令的顶部放置。有mysql的等价物吗?在谷歌没有找到任何东西。

  • 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 1012:不能读取系统表中的记录 1020:记录已被其他用户修改 1021:硬盘剩余空间不足,请加大硬盘可用空间 1022:关键字重复,更改记录失败

  • 问题内容: 我正在尝试更新该列以为其赋予值1。我使用MySQL工作台,并从工作台内部在SQL编辑器中编写语句。我正在编写以下命令: 它给了我以下错误: 您正在使用安全更新模式,并且试图更新不具有使用KEY列的WHERE的表。要禁用安全模式,请切换选项…。 我跟着指示,我不加以制止,从选项菜单,然后再。仍然会出现相同的错误,并且我无法更新此值。拜托,告诉我哪里错了? 问题答案: 我找到了答案。问题是