SQL技巧:利用REGEXP_replace完成欄位內容計數
阿新 • • 發佈:2022-01-13
背景:有個欄位裡面可能一項或多項調查資料,欄位和期望所得數如下:
title
["戒驕戒躁,寵辱不驚"] #期望得到數字:2
["輕率","躁動","不善言","疏忽","好為人師"]#期望得到數字:5
解決:
1、由於Mysql5.8好像還沒有regex_count型別的函式,所以只能另想辦法。
2、思路:將不是"的內容去除(替換為空),然後再統計"的個數,再除以2即可。
程式碼:
select title, REGEXP_replace(title,'[^"]','') title1, LENGTH(REGEXP_replace(title,'[^"]','')) title_count from ( select '["戒驕戒躁,寵辱不驚"]' title union all select '["輕率","躁動","不善言","疏忽","好為人師"]' title ) t1
返回:
title title1 title_count
["戒驕戒躁,寵辱不驚"] "" 2
["輕率","躁動","不善言","疏忽","好為人師"] """""""""" 10
本文來自部落格園,作者:xiaoyongdata(微訊號:xiaoyongdata),轉載請註明原文連結:https://www.cnblogs.com/xiaoyongdata/p/15799509.html