Count the number of occurrences of a string in a VARCHAR field?

后端 未结 7 1256
花落未央
花落未央 2020-11-22 07:51

I have a table like this:

TITLE          |   DESCRIPTION
------------------------------------------------
test1          |   value blah blah value
test2              


        
7条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-22 08:29

    In SQL SERVER, this is the answer

    Declare @t table(TITLE VARCHAR(100), DESCRIPTION VARCHAR(100))
    
    INSERT INTO @t SELECT 'test1', 'value blah blah value' 
    INSERT INTO @t SELECT 'test2','value test' 
    INSERT INTO @t SELECT 'test3','test test test' 
    INSERT INTO @t SELECT 'test4','valuevaluevaluevaluevalue' 
    
    
    SELECT TITLE,DESCRIPTION,Count = (LEN(DESCRIPTION) - LEN(REPLACE(DESCRIPTION, 'value', '')))/LEN('value') 
    
    FROM @t
    

    Result

    TITLE   DESCRIPTION               Count
    test1   value blah blah value        2
    test2   value test                   1
    test3   test test test               0
    test4   valuevaluevaluevaluevalue    5
    

    I don't have MySQL install, but goggled to find the Equivalent of LEN is LENGTH while REPLACE is same.

    So the equivalent query in MySql should be

    SELECT TITLE,DESCRIPTION, (LENGTH(DESCRIPTION) - LENGTH(REPLACE(DESCRIPTION, 'value', '')))/LENGTH('value') AS Count
    FROM 
    

    Please let me know if it worked for you in MySql also.

提交回复
热议问题