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

2021-08-30 02:14:21 字數 741 閱讀 4868

我在實習時候碰到過乙個這樣的需求,在表裡有一串12位的字串,全是數字0和1,如下:

000011111111

表示這個人一年中,前四個月沒有繳費,後八個月繳費了。我的需求是想知道這個人一年總共繳費多少個月。

在寫sql語句時,有乙個巧方法,利用替換字串,計算長度,然後相除。

select

'000011111111'

as years,

(length(

'000011111111'

)-length(

replace

('000011111111'

,'1',''

)))/length(

'1')

as1的個數

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

同理,假如想要計算

『abcabcddd』 裡面有幾個』abc』,也可以用上面的方法。

select

'abcabcddd'

as 列1

,(length(

'abcabcddd'

)-length(

replace

('abcabcddd'

,'abc',''

)))/length(

'abc'

)as abc的個數

求一串字串中的最長子串

運用了集合來操作 計算的字串,中文字串也可以 string s asdfasdf char chararray s.tochararray mapstring listmap new hashmapstring 1.為每個腳標開始的字元建立乙個list集合,並用map集合儲存腳標與這個對應集合 fo...

sql列轉化為一串字串

參考如下 如何將一列中所有的值一行顯示 資料來源 a b c d e 結果 a,b,c,d,e create table tb col varchar 20 insert tb values a insert tb values b insert tb values c insert tb valu...

用正則匹配一串字串中的ip位址

ip位址有4段組成,每一段數字的範圍為0 255,在一段文字中提取ip位址可以這樣 src src alsdlk ks sdf2.3.3.4 234.193.1.120.1232 d.233.43.23.34 23.34.23.33 dfkl lksd flk lkjs.c lksf.c kldsl...