我有一张这样的桌子:

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相关问答推荐

如何根据mysql中的用户组获取文档?

如何重新采样SQL数据库

SQL查询仅插入5行

SQL:创建新列并将现有表中的值追加到新创建的列中

如何防止程序中计数器出错

仅获取我不是最后一个 comments 者的博客帖子

表列中的SQL SUM MENY值记录单个查询

Mysql时间序列数据的最小值和最大值

有人可以帮我优化这个查询吗?

SQL / MySQL:如何在WHERE IN中判断类似于OR的AND逻辑

MySQL过滤食谱上的多对多 - 成分表

估计行数 SQL

从 MYSQL 查询中计算列的平均值

用于国际和多语言目的的数据库建模

将 mySQL 查询作为 cron 作业(job)运行?

MySQL ORDER BY rand(),名称为 ASC

在 Yii2 中执行原始 SQL 查询?

Mysql中int(10)的最大大小是多少

MySQL:ALTER IGNORE TABLE 给出违反完整性约束

MySQL 更新连接表