首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查询sql字符串中的子字符串

如何查询sql字符串中的子字符串
EN

Stack Overflow用户
提问于 2014-08-22 18:42:12
回答 2查看 84关注 0票数 0

我有日志sql字符串,我想查询其中的一个子字符串。字符串的形式与此类似:

代码语言:javascript
复制
2014-04-16 00:01:31-0400,583 {"Items":[{"EventName":"REDISTRIBUTION","PubEndDate":"2014/04/04","HistoryId":30330244,"AlertId":311116,"ItmId":"1515998685","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"0FQN","PubStartDate":"2014/04/04","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/06/30","HistoryId":30330244,"AlertId":311116,"ItmId":"1515993519","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"3GGY","PubStartDate":"2014/04/01","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/06/30","HistoryId":30330244,"AlertId":311116,"ItmId":"1515993511","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"3GGY","PubStartDate":"2014/04/01","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/03/31","HistoryId":30330244,"AlertId":311116,"ItmId":"1516002290","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"0EUH","PubStartDate":"2014/03/31","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/02/28","HistoryId":30330244,"AlertId":311116,"ItmId":"1515999310","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"1ZEC","PubStartDate":"2014/02/01","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/01/31","HistoryId":30330244,"AlertId":311116,"ItmId":"1515993424","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"5AMP","PubStartDate":"2014/01/01","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/01/31","HistoryId":30330244,"AlertId":311116,"ItmId":"1515993462","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"5AMP","PubStartDate":"2014/01/01","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/01/31","HistoryId":30330244,"AlertId":311116,"ItmId":"1515993356","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"5AMP","PubStartDate":"2014/01/01","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"},{"EventName":"REDISTRIBUTION","PubEndDate":"2014/01/31","HistoryId":30330244,"AlertId":311116,"ItmId":"1515993516","SourceType":"Trade Journals","ReasonCode":"","Origin":"Alert","MyResearchUser":"610165","ProjectCode":"","PublicationCode":"5AMP","PubStartDate":"2014/01/01","ItmFrmt":"ResultItem","Subrole":"ResultItem","PaymentType":"PrePaid","NumberOfCopies":1,"UsageInfo":"P-1008254-158123-CUSTOMER-null-3667449","Role":"ResultItem","RetailPrice":0.39,"EffectivePrice":0,"Multiplier":1,"ParentItemId":"186168"}],"Operation":["optype:Email","location:null","target:null"],"UserInfo":{"IP":"172.27.242.164","AppId":"DIALOG","SessId":"20140416040131549:367642","UsageGroupId":"1138209"},"UsageType":"multiRetrieve","BreadCrumb":"OS-AlertEmailBase-logAlertEmail-2-AlertID-311116"}

我想在ItmFrmt键之后查询引号中的项,在这种情况下,值"ResultItem“,但是在完整的数据库中,这些引号之间会有不同的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-22 19:03:29

你可以试试这个:

代码语言:javascript
复制
SELECT *
FROM your_table_name
WHERE jsonFieldName like '%"ItmFrmt":"ResultItem"%'

这将给出所有具有该字符串的确切部分的字段。

票数 1
EN

Stack Overflow用户

发布于 2014-08-22 19:20:27

您可以使用替换获取所需的文本。

代码语言:javascript
复制
 select regexp_replace(columnName, '.*"ItmFrmt":"(.*)",.*', '\1') as queryString
 from tableName
 where queryString ~ '"ItmFrmt":'
 and queryString ...

第一个where子句将只获得实际拥有ItemFrmt片段的条目,因为替换不会在不匹配的行中替换任何内容,只会按原样报告。

...是用来填写您要查询的内容。但请注意,这并不能处理对JSON的特殊引用。最好将JSON放在单独的列/表中,并使用内置的JSON处理。此外,我不能保证这是多么有效,特别是如果你有一个非常大的桌子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25453621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档