如何从 MySQL 中的 JSON 结果中删除括号

Posted

技术标签:

【中文标题】如何从 MySQL 中的 JSON 结果中删除括号【英文标题】:How to remove brackets from JSON results in MySQL 【发布时间】:2021-12-19 19:25:11 【问题描述】:

我为这个幼稚的问题提前道歉 - 寻求 mysql 帮助以从我的结果中删除括号 []。

我在这里引用了一个问题 (How to remove brackets, quotes from table?),这非常有帮助,但我只能弄清楚如何只删除一个括号。

这是我正在使用的 SQL 行:

 COALESCE(REPLACE(static_demographics.race, '[', ''), '')   AS `Clients Race`,

我的结果显然只删除了一个括号:

Result
3]

我也希望能够删除右括号以仅保留结果。 我将如何调整 SQL 以包含要删除的两个括号。从我的 SQL 中可以看出,我显然只引用了左括号,只是不确定如何合并两者。提前感谢您的帮助。

【问题讨论】:

您可以将 REPLACE() 嵌套在另一个 REPLACE() 中。 你为什么不用JSON_EXTRACT() @Barmar - 谢谢你的建议。我对 JSON 不太熟悉,仍在尝试研究并让自己跟上进度。如何使用 JSON_EXTRACT?我尝试过,但显然我的语法不正确,因为它只返回 NULL 值。尝试搜索提取值的语法应该是什么样的。 【参考方案1】:

REPLACE() 返回的结果是一个字符串。您可以将其用作对REPLACE() 的另一个调用的输入。

COALESCE(
  REPLACE(
    REPLACE(
      static_demographics.race, 
      '[', ''),                 -- inner replace removes left bracket 
   ']', ''),                    -- outer replace removes right bracket
  '')                           -- default to empty string

【讨论】:

以上是关于如何从 MySQL 中的 JSON 结果中删除括号的主要内容,如果未能解决你的问题,请参考以下文章

如何从 JSON 数组数据输出中删除大括号 []?

如何从 python 中的字符串中只删除最后一个括号?

如何删除我的 json 文件机器人框架中的方括号?

从 laravel 中的过程获取结果 - 从响应中删除方括号

如何从 MySQL 列中的 JSON 文档中获取最新值?

如何从 MySQL 的 JSON 数组中删除一个数字?