首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql:在多个条件下优化查询

sql:在多个条件下优化查询
EN

Stack Overflow用户
提问于 2017-03-29 16:21:29
回答 1查看 90关注 0票数 0

我有一个sql查询:

代码语言:javascript
复制
SELECT
    [Id],
    [Content]    
FROM 
    [MyTable] with (nolock)
where
    Content is not null
    and (PATINDEX('%"number" : "[0-9]%', Content) > 0
         or PATINDEX('%"number":"[0-9]%', Content) > 0
         or PATINDEX('%"number" :"[0-9]%', Content) > 0
         or PATINDEX('%"number": "[0-9]%', Content) > 0
         --del
         or PATINDEX('%"del":"[0-9]%', Content) > 0
         or PATINDEX('%"del":"[0-9]%', Content) > 0
         or PATINDEX('%"del":"[0-9]%', Content) > 0
         or PATINDEX('%"del":"[0-9]%', Content) > 0
)

在我的服务器上,缓存已被清除,返回大约400行需要超过两分钟,这可能是因为我对or有很多条件。

我是这样创建查询的,因为Content列中的"number“字符串在":”和"number“字符串或下一个数字之间是否有空格的可能性。

有办法从or条件下减少吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 17:01:16

试试看

代码语言:javascript
复制
SELECT
    [Id],
    [Content]    
FROM 
    [MyTable] with (nolock)
where
    Content is not null
    and (PATINDEX('%"number":"[0-9]%', replace(Content,' ','')) > 0
         or PATINDEX('%"del":"[0-9]%', replace(Content,' ','')) > 0)

您也可以删除Content is not null部件。

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

https://stackoverflow.com/questions/43099021

复制
相关文章

相似问题

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