为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

跃然一笑 2019-07-03 16:16:40
计算VARCHAR字段中字符串出现的次数?我有一张这样的桌子:TITLE          |   DESCRIPTION------------------------------------------------test1          |   value blah blah valuetest2          |   value testtest3          |   test test testtest4          |   valuevaluevaluevaluevalue我试图弄清楚如何返回每个描述中字符串发生的次数。因此,如果我想计算出现‘value’的次数,SQL语句将返回以下内容:TITLE          |   DESCRIPTION                  |   COUNT------------------------------------------------------------test1          |   value blah blah value        |   2test2          |   value test                   |   1test3          |   test test test               |   0test4          |   valuevaluevaluevaluevalue    |   5有什么办法吗?我根本不想使用php,只想使用MySQL。
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

这应该能起作用:

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


查看完整回答
反对 回复 2019-07-03
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

试试这个:

 select TITLE,
        (length(DESCRIPTION )-length(replace(DESCRIPTION ,'value','')))/5 as COUNT 
  FROM <table>


SQL Fiddle演示


查看完整回答
反对 回复 2019-07-03
?
萧十郎

TA贡献1815条经验 获得超13个赞

请让我知道它是否对你的MySQL也有效。

在sql server中,这是答案。


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

结果


TITLE   DESCRIPTION               Count

test1   value blah blah value        2

test2   value test                   1

test3   test test test               0

test4   valuevaluevaluevaluevalue    5

我没有安装MySQL,但是我用眼镜来查找相当于Len的长度取代是一样的。


因此,MySQL中的等效查询应该是


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

FROM <yourTable>

请让我知道它是否对你的MySQL也有效。


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 685 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信