最近遇到了需要統計标簽的浏覽量,但是每個label_name下包含了兩個三個不等的标簽ID并且以逗号隔開
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL3UDOyMTNyYTM5ETMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
(圖1)
類似這種,這時候需要把id 拆分開來分别對應後面的浏覽量,有個類似固定寫法的方法:例如
統計的表名為temp 需要統計,拆分的字段為label_name,最後需要函數處理的字段為view_count(浏覽量)
套入方法為:
SELECT
tp.id,
tp.label_name,
tp.view_count,
substring_index(substring_index(tp.label_name,’,’,b.help_topic_id + 1),’,’,- 1) as label_id
FROM
temp as tp
JOIN mysql.help_topic b ON b.help_topic_id < (length(tp .label_name) - length(REPLACE(tp.label_name, ‘,’, ‘’)) + 1) ORDER BY tp.view_count DESC;
為了讓大家看清楚 我也列印了a.label_name
(圖二)
注意觀察圖二id為194的資料(圖一中最後一行資料就是沒處理之前的id為194的資料,懶得在截圖了),兩個id在label_id列已經拆分,并且對應的浏覽量也分别對應 此時以這個結果集再去統計就會簡單多了 無非就是group by 和 sum 了。希望對大家有幫助