分开获取

MYSQL数据库将fine_workflow_task_impl表中的completeState字段键值对分开获取,形成两列内容,第一列取第三到第四个斜杠之间的值

FineReport LOE 发布于 昨天 17:14 (编辑于 昨天 17:20
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于昨天 19:16

mysql的语法。5与8的版本都可以使用

SELECT 

json_column,

    SUBSTRING_INDEX(SUBSTRING_INDEX(json_column, '/', 4), '/', -1) AS fourth_level

FROM testaa

image.png

最佳回答
0
华莉星宸Lv7资深互助
发布于昨天 17:18

先用split()函数转为数组

在用INDEXOFARRAY() 取数组中的元素

---------------

SPLIT(String1,String2):返回由String2分割String1组成的字符串数组。

String1:以双引号表示的字符串。

String2:以双引号表示的分隔符。例如逗号","

示例:

SPLIT("hello,world,yes",",")=["hello","world","yes"]。

SPLIT("this is very good"," ") = ["this","is","very","good"]。

备注:

如果只有一个参数,则返回一个错误。如果有多个参数,则只有前两个起作用。

----------------

INDEXOFARRAY(array,index):返回数组array的第index个元素。

示例:

INDEXOFARRAY(["第一个","第二个","第三个"],2)返回"第二个"。

  • LOE LOE(提问者) {"第一层/第二层/第三层/第四层/第五层.cpt":{"LLEE":1}}键值对的内容为这个,MYSQL数据库
    2024-11-25 17:24 
  • LOE LOE(提问者) 相当于要取“第四层”这个内容
    2024-11-25 17:24 
  • 华莉星宸 华莉星宸 回复 LOE(提问者) 你是要在SQL中处理?
    2024-11-25 17:25 
  • LOE LOE(提问者) 回复 华莉星宸 是的。
    2024-11-25 17:29 
最佳回答
0
JL98Lv6中级互助
发布于昨天 17:19

ORACLE为例:

SELECT 

    CASE 

        WHEN INSTR(completeState, '/', 1, 4) > 0 THEN

            SUBSTR(

                completeState, 

                INSTR(completeState, '/', 1, 3) + 1, 

                INSTR(completeState, '/', 1, 4) - INSTR(completeState, '/', 1, 3) - 1

            )

        ELSE

            NULL -- 或者其他适当的默认值

    END AS extracted_value

FROM 

    fine_workflow_task_impl;

image.png

  • 4关注人数
  • 88浏览人数
  • 最后回答于:昨天 19:16
    请选择关闭问题的原因
    确定 取消
    返回顶部