php - php mysql 选择和计数
问题描述
我有一个名为'tagtable'的mysql表,它有文本类型列'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 个标签并计算它们,如下所示:
#wall-5 , #table-4 , #discount-3, #radio-3
我怎样才能用 php 实现呢?
解决方案
试试这个代码
SELECT
ID,
tag,
(CHAR_LENGTH(params) - CHAR_LENGTH(REPLACE(params, ',', '')) + 1) as total
FROM tagtable
order by total desc
limit 4