MySQL 5.7将JSON字符串的值连接为一个字符串

克里斯·施利特

我有一个表,其中content列由JSON对象组成,并带有示例值:

{"blocks":[{"score":"A"},{"score":"A"},{"score":"B"}]}

我想做的是SELECT所有分数的字符串表示形式,因此对于此示例,我想要:

AAB

我已经能够轻松解析JSON:

SELECT json_extract(content, '$.blocks[*].score') AS scores

结果是:

["A", "A", "B"]

但是由于某种原因,我在将JSON数组连接为单个字符串时遇到了问题(除了将其转换为字符串并调用一些replace函数以删除引号和方括号)。我试过的变化CONCATGROUP_CONCAT,但还没有找到一个解决方案。

将这个JSON字符串合并为单个字符串的正确方法是什么?

巴巴罗斯·奥赞

您可以使用目录表(例如)information_schema.tables来生成要按数组长度进行迭代的行,然后使用来聚合所有成员,GROUP_CONCAT()例如

SELECT GROUP_CONCAT(
                    JSON_UNQUOTE(
                       JSON_EXTRACT(content,
                                    CONCAT('$.blocks[', i - 1, '].score'))
                                   ) 
                       SEPARATOR '') AS scores
  FROM (SELECT JSON_LENGTH(JSON_EXTRACT(content, '$.blocks[*].score')) AS len,
               @i := @i + 1 AS i,
               content
          FROM tab
          JOIN information_schema.tables
          JOIN (SELECT @i := 0) AS i) AS t
 WHERE i <= len;

+--------+
| scores |
+--------+
|  AAB   |
+--------+

Demo

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

每5个字符分割一个字符串

来自分类Dev

MySQL Join VIEW,将列连接成一个字符串

来自分类Dev

如何使用PHP将MySQL结果连接到一个字符串中

来自分类Dev

MySQL Join VIEW,将列连接成一个字符串

来自分类Dev

在MySQL中替换字符串中的第一个字符

来自分类Dev

MySQL和PHP在表中搜索一个字符串,但替换另一个字符串

来自分类Dev

用5个php变量制作一个字符串

来自分类Dev

使用MySQL函数将字符串的第一个字符移动到字符串的末尾

来自分类Dev

从外部文件向mysql终端输出一个字符串

来自分类Dev

MySQL按多少顺序排序像一个字符串

来自分类Dev

使用PHP从一个字符串进行多个MySQL更新

来自分类Dev

MySQL添加一个字符串作为默认

来自分类Dev

如何用 MySQL 中另一个字符串和一个字段的串联替换任何字符串

来自分类Dev

如何仅更改mysql行上多个相同值的第一个字符串

来自分类Dev

把mysql_fetch_array的值放在一个字符串中,用分隔;

来自分类Dev

将多个mysql数据组合成一个字符串并用php显示

来自分类Dev

表中的MYSQL查找值与一个字符串的多个可能的子字符串中的最佳匹配

来自分类Dev

表中的MYSQL查找值与一个字符串的多个可能的子字符串中的最佳匹配

来自分类Dev

如何选择一个字符串作为单独的行的一个字符的MySQL

来自分类Dev

拆分一个字符串,只取 5 个项目。但限制字符<20

来自分类Dev

在Perl 5中将除一个字符之前的所有字符匹配到特定字符串

来自分类Dev

MYSQL-更新COLUMN中字符串的第一个字符

来自分类Dev

如何检查一个字符串是否包含至少5个唯一字符并且至少7个字符长?

来自分类Dev

MYSQL-LOAD XML多个重复(重复)标签作为一个字符串

来自分类Dev

如何从文本字段mysql的第二行中选择一个字符串

来自分类Dev

如果 column1 匹配一个字符串,我需要什么 mysql 函数?

来自分类Dev

搜索字符串mysql db,它可以有空格,可以在另一个字符串中,依此类推

来自分类Dev

在所有数据库mysql中用另一个字符串替换一个字符串

来自分类Dev

将逗号分隔的字符串转换成几个列表,并忽略字符串的第一个元素Java的前5个字符

Related 相关文章

  1. 1

    每5个字符分割一个字符串

  2. 2

    MySQL Join VIEW,将列连接成一个字符串

  3. 3

    如何使用PHP将MySQL结果连接到一个字符串中

  4. 4

    MySQL Join VIEW,将列连接成一个字符串

  5. 5

    在MySQL中替换字符串中的第一个字符

  6. 6

    MySQL和PHP在表中搜索一个字符串,但替换另一个字符串

  7. 7

    用5个php变量制作一个字符串

  8. 8

    使用MySQL函数将字符串的第一个字符移动到字符串的末尾

  9. 9

    从外部文件向mysql终端输出一个字符串

  10. 10

    MySQL按多少顺序排序像一个字符串

  11. 11

    使用PHP从一个字符串进行多个MySQL更新

  12. 12

    MySQL添加一个字符串作为默认

  13. 13

    如何用 MySQL 中另一个字符串和一个字段的串联替换任何字符串

  14. 14

    如何仅更改mysql行上多个相同值的第一个字符串

  15. 15

    把mysql_fetch_array的值放在一个字符串中,用分隔;

  16. 16

    将多个mysql数据组合成一个字符串并用php显示

  17. 17

    表中的MYSQL查找值与一个字符串的多个可能的子字符串中的最佳匹配

  18. 18

    表中的MYSQL查找值与一个字符串的多个可能的子字符串中的最佳匹配

  19. 19

    如何选择一个字符串作为单独的行的一个字符的MySQL

  20. 20

    拆分一个字符串,只取 5 个项目。但限制字符<20

  21. 21

    在Perl 5中将除一个字符之前的所有字符匹配到特定字符串

  22. 22

    MYSQL-更新COLUMN中字符串的第一个字符

  23. 23

    如何检查一个字符串是否包含至少5个唯一字符并且至少7个字符长?

  24. 24

    MYSQL-LOAD XML多个重复(重复)标签作为一个字符串

  25. 25

    如何从文本字段mysql的第二行中选择一个字符串

  26. 26

    如果 column1 匹配一个字符串,我需要什么 mysql 函数?

  27. 27

    搜索字符串mysql db,它可以有空格,可以在另一个字符串中,依此类推

  28. 28

    在所有数据库mysql中用另一个字符串替换一个字符串

  29. 29

    将逗号分隔的字符串转换成几个列表,并忽略字符串的第一个元素Java的前5个字符

热门标签

归档