You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中使用SUBSTR等函数提取字符串中OrderKey对应字段内容

MySQL提取指定OrderKey字段内容的实现方案

可以实现,以下是两种包含SUBSTR函数的实现方案,均能得到你需要的目标结果:

原始待处理字符串:

Result":{"CreateDate":"2021-05-27T19:58:33","OrderKey":"6ea1eb40-bd80-4e8b-8e78-a7 ","OrderReference":"app_iheillyy_9816617_AF_e2002"}}

目标提取结果:

OrderKey":"6ea1eb40-bd80-4e8b-8e78-a7 "

方案1:SUBSTR + LOCATE 组合

通过LOCATE定位关键字符串的起止位置,再用SUBSTR按位置截取内容,示例SQL如下:

SELECT 
  SUBSTR(
    你的字段名,
    -- 截取起始点:OrderKey第一个字符的位置
    LOCATE('OrderKey', 你的字段名),
    -- 截取长度:结束引号位置 - 起始位置 + 结束引号的长度("共6个字符)
    LOCATE('"', 你的字段名, LOCATE('OrderKey":"', 你的字段名) + LENGTH('OrderKey":"')) 
    - LOCATE('OrderKey', 你的字段名) 
    + 6
  ) AS extracted_orderkey
FROM 你的表名;

方案2:SUBSTR + SUBSTRING_INDEX 组合

通过SUBSTRING_INDEX按分隔符拆分内容,搭配SUBSTR和拼接函数得到结果,示例SQL如下:

SELECT 
  CONCAT(
    'OrderKey":"',
    -- 拆分出OrderKey的实际值
    SUBSTRING_INDEX(
      -- 先截取OrderKey值开始之后的所有内容
      SUBSTR(你的字段名, LOCATE('OrderKey":"', 你的字段名) + LENGTH('OrderKey":"')),
      '"',
      1
    ),
    '"'
  ) AS extracted_orderkey
FROM 你的表名;

以上两种方案均兼容MySQL 5.5及以上版本,如果你的数据库版本支持JSON函数,也可以先把字符串中的"替换为普通双引号转成合法JSON格式后,搭配JSON_EXTRACT提取内容。

内容的提问来源于stack exchange,提问作者Marco Antonio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:24:04