【发布时间】:2021-04-05 00:34:17
【问题描述】:
我有一张表,其中有超过 20 亿行,我的搜索始终基于索引字段。
没有什么需要尝试的新方法是获取存储在 longtext 和 varchar(4000) 列中的 xml 字符串字段 这两个列都存储xml文件,一个是大xml文件,一个是小xmls文件。
我需要查询 xml 文件中的节点或字段。
例如,我需要获取第一个 xml 文件(DS 列第 6 列)中存在的 statusCode 和第二个 xml 文件(SY 列最后一列)中存在的 providerT
搜索总是基于索引列 CT_ID 然后基于 DS SY 列。
所以我正在搜索类似的查询
select * from AD_TABLE where CT_ID ='6ththeurtyiru' and DS.statusCode='COMPLETED' AND SY.providerT='noOfNRe';
我知道我的查询是错误的,但是如果我有 json 这可以工作,但我们在 MySql 中是否有任何这样的 xml?
我做了一些搜索,但查询看起来非常难以理解,特别是解析查询。
请有人帮我解决这个问题。
ID,VERSION,AN_TYPE,EN_TYPE,CT_ID,DS,OT_TYPE,DATE_TIME,GP_ID,OT_NAME,OT_ID,UR_NAME,UR_ID,PT_ID,NS,SY
6uyuitygjh82mcrzz,0,SD_CASE,MYCHECK,6ththeurtyiru
,<?xml version="1.0" encoding="UTF-8" standalone="yes"?><sCPayload><cId>suerywe7r-21cf-4c7e-8071-suerywe7r</cId><statusCode>COMPLETED</statusCode><sngState>INPROGRESS</sngState><noOfNRe>1</noOfNRe><noOfRRR>0</noOfRRR><noOfER>0</noOfER><noOfARR>1</noOfARR><providerT>WATCHLIST</providerT></sCPayload>,CASE,9/16/2020 9:45,bd7c9519-d726-4672-8599-83d21927bec5,,5f53b903-21cf-4c7e-8071-suerywe7r,System User,USER_SYSTEM,,,<?xml version="1.0" encoding="UTF-8" standalone="yes"?><screenCES><providerT>MYWATCH</providerT><noOfNRe>1</noOfNRe></screenCES>,
【问题讨论】:
-
您使用的是哪个版本以及 MySQL 或 MariaDB ?
-
@BerndBuffen Mysql 我甚至可以使用 Maria DB
-
我喜欢 MariaDB,但不是必须的,只是虚拟字段的语法有点不同