1. 程式人生 > >mySql中,查詢一串字串裡有幾個'abc'

mySql中,查詢一串字串裡有幾個'abc'

mySql中,查詢一串字串裡有幾個’abc’

我在實習時候碰到過一個這樣的需求,在表裡有一串12位的字串,全是數字0和1,如下:
000011111111
表示這個人一年中,前四個月沒有繳費,後八個月繳費了。我的需求是想知道這個人一年總共繳費多少個月。
在寫sql語句時,有一個巧方法,利用替換字串,計算長度,然後相除。

select 
	'000011111111' as years,
	(length('000011111111')-length(replace('000011111111','1','')))/length('1') as 1的個數

是不是很巧,把1替換成空字串,用原字串的長度減去替換之後字串的長度,然後用得的差除以替換字串的長度,就是要的結果。

同理,假如想要計算
‘abcabcddd’ 裡面有幾個’abc’,也可以用上面的方法。

select 
	'abcabcddd' as1,
	(length('abcabcddd')-length(replace('abcabcddd','abc','')))/length('abc') as abc的個數