1. ホーム
  2. マイスル

[解決済み] VARCHARフィールド内の文字列の出現回数を数える?

2022-04-09 14:44:27

質問

このようなテーブルがあります。

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

DESCRIPTIONのそれぞれに文字列が出現する回数を返す方法を考えています。

つまり、'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>