首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子字符串只返回查询字符串+ 10字符

子字符串只返回查询字符串+ 10字符
EN

Stack Overflow用户
提问于 2014-10-20 17:05:45
回答 2查看 45关注 0票数 0

我觉得这不应该这么难,但我想查询一个长文本字段,以获得一个字符串出现:"<blog:"。我希望它返回这个字符串,最好是通过它的结尾,">" Substring_Index似乎没有为我这样做。有什么建议吗?我目前有:

代码语言:javascript
复制
        SELECT body, SUBSTRING(`body`, LOCATE("<blog:", body),20)as blogCat 
        from T1;     

这会返回该字符串之后的所有内容,这是大量的数据。理想情况下,我希望它在第一个">“-这是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-20 17:53:17

可以多次使用“定位”。

在< blog之后获取>,然后使用子字符串获取这两个字符串之间的字符串

SQL Fiddle

代码语言:javascript
复制
SELECT body, SUBSTRING(`body`, LOCATE("<blog:", body), 
                       LOCATE(">", body, LOCATE("<blog:", body) ) 
                       - LOCATE("<blog:", body) +1 
                      )as blogCat 
FROM T1;
票数 0
EN

Stack Overflow用户

发布于 2014-10-20 17:57:51

根据我的理解,您希望找到一个发生在S1和S2之间的子字符串。在这种情况下,尝试如下(我没有测试语法):

代码语言:javascript
复制
SELECT
    SUBSTRING(body, LOCATE("<blog:", body), LOCATE(">", body, LOCATE("<blog:", body)) - LOCATE("<blog:", body))
FROM
    T1

顺便提一句,我不知道在你的例子中,你是怎么得到整个字符串的,就像你声称的那样,因为你明显地把你的子字符串限制在20个字符。

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

https://stackoverflow.com/questions/26471090

复制
相关文章

相似问题

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