MySql의 하위 쿼리에 문제가 있습니다. 사용자 그룹이 포함 된 테이블이 있습니다. (이드 INT, 이름 VARCHAR, 다른 모든 TINYINT (1) (부울)MySql에서 상관 관계가있는 하위 쿼리 - 먼저 외부 쿼리를 평가하는 방법?
ID | Name | login | post | manage
1 user 1 0 0
2 poster 1 1 0
3 admin 1 1 1
내 목표는 할 수있을 것입니다 수 있습니다 : 열은 ID, 이름 및 각 행을 설명하는 주석과 재산입니다 사용자 그룹 속성 목록 (로그인, 게시 이상 관리) 및 각 속성 (각각 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 is al 방법 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)';
는이 작업을 얻을 수있는 방법이 항상 존재하지 않습니다이? 즉, 외부 문장을 먼저 평가하는 것입니까?
-
어떤 도움을 주셔서 감사합니다.
/빅터
감사합니다.하지만 행을 세는 것은 실제로 문제가 아닙니다. 문제는 information_schema (설명 또는 "예쁜 이름"으로 사용됨)에서 주석을 가져 와야하고 동일한 쿼리에서 카운트가 추가되었습니다. 어쨌든 고마워! – Victor