首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Case语句在MYSQL中计数子字符串

问使用Case语句在MYSQL中计数子字符串
EN

Stack Overflow用户
提问于 2016-05-06 19:00:09
回答 1查看 44关注 0票数 0

我有一个包含多个子字符串的文本字符串,其中我想要计数出现的字符串。我看到了类似问题的解决方案,但我想知道是否可以使用case语句或不创建新表来完成这一任务。

基本上,我使用的是一个数据聚合/分析工具,它只接受非常基本的MySQL语句。

示例:

代码语言:javascript
复制
Paid Search:CLICK, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:CLICK, Display:IMPRESSION, Display:IMPRESSION, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:IMPRESSION, Display:CLICK

我想提取一个"Display:Rich_Media“的计数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-06 19:06:14

在这里,您可以通过以下查询来完成这一任务:

代码语言:javascript
复制
SET @your_string :=
'Paid Search:CLICK, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:CLICK, Display:IMPRESSION, Display:IMPRESSION, Display:RICH_MEDIA, Display:RICH_MEDIA, Display:IMPRESSION, Display:CLICK';

SELECT
    ROUND(
        (
            LENGTH(@your_string) - LENGTH(
                REPLACE (
                    @your_string,
                    "Display:RICH_MEDIA",
                    ""
                )
            )
        ) / LENGTH("Display:RICH_MEDIA")
    ) AS totalOccurrence;

解释:

  • 您的字符串长度-长度后,所有发生的减法替换为空。
  • 此减法的结果=所替换的字符数=减法的长度*减法出现的次数
  • 现在,如果将结果除以减法的长度,您将得到出现的次数。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37079623

复制
相关文章

相似问题

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