我们在 mysql 数据库中有一个用户配置文件表,其中一个字段是SET
跟踪用户组的列。
表结构为:
CREATE TABLE IF NOT EXISTS `users_profiles` (
`userId` mediumint(9) NOT NULL DEFAULT '0',
`birthday` date DEFAULT NULL,
`groups` set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20')
);
我想在排序的降序列表中获取最受欢迎的组,但是我们使用SET
列的事实使得使用诸如COUNT
.
我可以通过运行以下查询来获得特定的组数:
SELECT count(NULLIF(`interests` & 1,0)) as Count1stVal FROM users_profiles;
但是,我不想为每个组运行查询,然后计算最受欢迎的组