У меня проблемы с подзапросами в MySql. У меня есть таблица, содержащая группы пользователей. Столбцы - это id, name и свойства с комментарием, описывающим каждую строку:
(Идентификатор INT, Имя VARCHAR, все остальные TINYINT (1) (логическое значение)
ID | Name | login | post | manage
1 user 1 0 0
2 poster 1 1 0
3 admin 1 1 1
Моя цель состоит в том, чтобы иметь возможность перечислить свойства группы пользователей (логин, запись и управление выше) и количество групп пользователей, которые имеют каждое свойство (3, 2 и 1 соответственно).
Этот запрос работает (но, очевидно, каждый раз учитывает столбец входа в систему):
SELECT @colname:=cols.column_name,cols.column_comment,
(SELECT COUNT(*) FROM db.usergroups WHERE login=1) AS num_users
FROM information_schema.columns AS cols
WHERE TABLE_SCHEMA='db' AND TABLE_NAME='usergroups' AND column_type='tinyint(1)';
Это не работает (num_users всегда 0)
SELECT @colname:=cols.column_name,cols.column_comment,
(SELECT COUNT(*) FROM db.usergroups WHERE cols.column_name=1) AS num_users
FROM information_schema.columns AS cols
WHERE TABLE_SCHEMA='db' AND TABLE_NAME='usergroups' AND column_type='tinyint(1)';
Это также (num_users всегда 0)
SELECT @colname:=cols.column_name,cols.column_comment,
(SELECT COUNT(*) FROM db.usergroups WHERE @colname=1) AS num_users
FROM information_schema.columns AS cols
WHERE TABLE_SCHEMA='db' AND TABLE_NAME='usergroups' AND column_type='tinyint(1)';
Есть ли способ заставить это работать? То есть - сначала оценить внешнее утверждение?
-
Большое спасибо за любую помощь!
/ Victor