【问题标题】:JSON_EXTRACT MariaDBJSON_EXTRACT MariaDB
【发布时间】:2018-04-15 13:48:06
【问题描述】:

当我需要从 json 数据进行查询时遇到问题。

我的 json 数据如下所示:

{"groups":[{"groupid":"3","group_name":"test group","group_type":"user","office":"1"},{"groupid":"4","group_name":"test group 1","group_type":"user","office":"1"},{"groupid":"21","group_name":"test group 2","group_type":"directory","office":"0"}]}

是否可以进行仅返回 office=1 的 groupid 的查询

目前我已经这样做了,但不知道如何查询办公室。

select json_extract(test,'$.groups[*].groupid') as groupid from test;

【问题讨论】:

  • 当你应该使用 groupidoffice 的列时,听起来你正在使用 Json。 当 RDBMS 运行良好时,Json 函数无法替代。

标签: sql mariadb


【解决方案1】:

试试:

SELECT CONCAT('
  SELECT JSON_EXTRACT(`doc_text`, ',
    REPLACE(TRIM('[' FROM TRIM(']' FROM
        JSON_SEARCH(doc_text, 'all', '1', NULL, '$.groups[*].office')
        )
      ),
      'office',
      'groupid'
    ), ') `groupid` FROM `docs`'
) INTO @`sql`
FROM `docs`;

dbfiddle

【讨论】:

    猜你喜欢
    • 2019-02-04
    • 2021-03-07
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多