mysql - 计算一个字符串在 VARCHAR 字段中出现的次数?

标签 mysql sql

我有一张这样的 table :

TITLE          |   DESCRIPTION
------------------------------------------------
test1          |   value blah blah value
test2          |   value test
test3          |   test test test
test4          |   valuevaluevaluevaluevalue

我试图弄清楚如何返回字符串在每个描述中出现的次数。

所以,如果我想统计 'value' 出现的次数,sql 语句会返回这个:

TITLE          |   DESCRIPTION                  |   COUNT
------------------------------------------------------------
test1          |   value blah blah value        |   2
test2          |   value test                   |   1
test3          |   test test test               |   0
test4          |   valuevaluevaluevaluevalue    |   5

有没有办法做到这一点?我根本不想用php,只用mysql。

最佳答案

这应该可以解决问题:

SELECT 
    title,
    description,    
    ROUND (   
        (
            LENGTH(description)
            - LENGTH( REPLACE ( description, "value", "") ) 
        ) / LENGTH("value")        
    ) AS count    
FROM <table> 

关于mysql - 计算一个字符串在 VARCHAR 字段中出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12344795/

相关文章:

php - 带有 COUNT、FROM、WHERE、GROUP BY 的 MYSQL SELECT

c# - 如何在 C#/ASP 中使用 MySQL 作为数据库创建 JSON Restful Web 服务?

mysql - 保存对象的最佳方式及其在 MySQL 数据库中的类型

mysql - 从多个条目中选择最高记录

sql - 关于WITH RECURSIVE Query Postgres的可能解释

mysql - 从表上的多个联接获取数据的有效方法

php - 元刷新进入无限循环

mysql - Laravel 5.1 中的外键 - 无关系

MySQL - 在 "normal"连接不可能时显示/计数连接记录

MySQL "Foreign key constraint is incorretly formed"