JSON_EXTRACT 函数的bug

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】 TiDB 5.0.3

【概述】 场景 + 问题概述
字段内容是一个json串

select JSON_EXTRACT(’{"_flush_time": 1627315286374, “_track_id”: -951184199, “anonymous_id”: “2fe4e1b6d5af8e99”, “distinct_id”: “2fe4e1b6d5af8e99”, “event”: “apiMonitor”, “lib”: {"$app_version": “2.8.6”, “$lib”: “Android”, “$lib_detail”: “com.sensorsdata.analytics.android.sdk.AbstractSensorsDataAPI##trackEventInternal##Proguard##1512”, “$lib_method”: “code”, “$lib_version”: “5.2.7”}, “properties”: {"$brand": “HUAWEI”, “$device_id”: “2fe4e1b6d5af8e99”, “$is_first_day”: true, “$lib”: “Android”, “$lib_method”: “code”, “$lib_version”: “5.2.7”, “$manufacturer”: “HUAWEI”, “$model”: “POT-LX3”, “$network_type”: “WIFI”, “$os”: “Android”, “$os_version”: “10”, “$screen_height”: 2340, “$screen_width”: 1080, “$timezone_offset”: 300, “$wifi”: true, “androidId”: “2fe4e1b6d5af8e99”, “responseBodyLength”: 738, “responseHeaderLength”: 407, “serverIp”: “211.152.146.88”, “totalTime”: 285.654687}, “time”: 1627315286067, “type”: “track”}’,"$.properties.androidId")
----正确

select JSON_EXTRACT(’{"_flush_time": 1627315286374, “_track_id”: -951184199, “anonymous_id”: “2fe4e1b6d5af8e99”, “distinct_id”: “2fe4e1b6d5af8e99”, “event”: “apiMonitor”, “lib”: {"$app_version": “2.8.6”, “$lib”: “Android”, “$lib_detail”: “com.sensorsdata.analytics.android.sdk.AbstractSensorsDataAPI##trackEventInternal##Proguard##1512”, “$lib_method”: “code”, “$lib_version”: “5.2.7”}, “properties”: {"$brand": “HUAWEI”, “$device_id”: “2fe4e1b6d5af8e99”, “$is_first_day”: true, “$lib”: “Android”, “$lib_method”: “code”, “$lib_version”: “5.2.7”, “$manufacturer”: “HUAWEI”, “$model”: “POT-LX3”, “$network_type”: “WIFI”, “$os”: “Android”, “$os_version”: “10”, “$screen_height”: 2340, “$screen_width”: 1080, “$timezone_offset”: 300, “$wifi”: true, “androidId”: “2fe4e1b6d5af8e99”, “responseBodyLength”: 738, “responseHeaderLength”: 407, “serverIp”: “211.152.146.88”, “totalTime”: 285.654687}, “time”: 1627315286067, “type”: “track”}’,"$.properties.$screen_height")

----无法得到预期结果

以上在mysql 下面正常 ,就是 json字段的名字带了 $ 无法得到预期结果

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题,参考 AskTUG 的 Troubleshooting 读性能慢-慢语句

【统计信息是否最新】

    【执行计划内容】

    【 SQL 文本、schema 以及 数据分布】

【业务影响】

【TiDB 版本】

【附件】 相关日志及监控(https://metricstool.pingcap.com/)

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)
1 个赞

这种写法可以返回正确结果
select
JSON_EXTRACT(’
{
“_flush_time”: 1627315286374,
“_track_id”: -951184199,
“anonymous_id”: “2fe4e1b6d5af8e99”,
“distinct_id”: “2fe4e1b6d5af8e99”,
“event”: “apiMonitor”,
“lib”: {
“$app_version”: “2.8.6”,
“$lib”: “Android”,
“$lib_detail”: “com.sensorsdata.analytics.android.sdk.AbstractSensorsDataAPI##trackEventInternal##Proguard##1512”,
“$lib_method”: “code”,
“$lib_version”: “5.2.7”
},
“properties”: {
“$brand”: “HUAWEI”,
“$device_id”: “2fe4e1b6d5af8e99”,
“$is_first_day”: true,
“$lib”: “Android”,
“$lib_method”: “code”,
“$lib_version”: “5.2.7”,
“$manufacturer”: “HUAWEI”,
“$model”: “POT-LX3”,
“$network_type”: “WIFI”,
“$os”: “Android”,
“$os_version”: “10”,
“$screen_height”: 2340,
“$screen_width”: 1080,
“$timezone_offset”: 300,
“$wifi”: true,
“androidId”: “2fe4e1b6d5af8e99”,
“responseBodyLength”: 738,
“responseHeaderLength”: 407,
“serverIp”: “211.152.146.88”,
“totalTime”: 285.654687
},
“time”: 1627315286067,
“type”: “track”
}’,’$.properties."$screen_height"’)

OK,只是小小兼容性.挺麻烦的.要开发修改一下代码了

:handshake::handshake::handshake:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。