mysql データベースにユーザー プロファイルのテーブルがあり、フィールドの 1 つは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;
ただし、グループごとにクエリを実行してから、最も人気のあるグループを計算したくありません