一尘不染

计算VARCHAR字段中字符串出现的次数?

mysql

我有一张这样的桌子:

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

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

因此,如果我想计算“值”出现的次数,则sql语句将返回以下内容:

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

有什么办法吗?我根本不想使用php,而只是mysql。


阅读 224

收藏
2020-05-17

共1个答案

一尘不染

这应该可以解决问题:

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