php mysql выберите и посчитайте - PullRequest
0 голосов
/ 09 марта 2020

У меня есть mysql таблица с именем «tagtable», и в ней есть столбец текстового типа «params», как показано ниже;

id   tag                 params    //in text type 
1   #discount          {"activity":[105,106,107]}
2   #table             {"activity":[108,109,110,111]}
3   #pencil            {"activity":[112,113]}
4   #door              {"activity":[114]}
5   #phone             {"activity":[115]}
6   #wall              {"activity":[116,117,118,119,120]}
7   #radio             {"activity":[121,122,123]}

Мой ожидаемый результат заключается в выборе топ-4 тега с наибольшим количеством активности в столбце params типа текста и подсчете их, как показано ниже:

#wall-5  , #table-4 , #discount-3, #radio-3

Как этого добиться с php?

1 Ответ

1 голос
/ 09 марта 2020

Попробуйте этот код

SELECT 
ID, 
tag, 
(CHAR_LENGTH(params) - CHAR_LENGTH(REPLACE(params, ',', '')) + 1) as total 
FROM tagtable 
order by total desc 
limit 4
...