MySqlのサブクエリに問題があります。私はユーザーグループを含むテーブルを持っています。 (Idが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
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)';
はこの作業を取得するにはどのような方法があります)は常に0ですか?つまり、最初に外側のステートメントを評価するのですか?
-
任意の助けてくれてありがとうたくさん!
/ビクター
ありがとう、しかし、行を数えることは実際には問題ではありません。問題は、description_schema(説明や "pretty name"として使用されています)からコメントを取得する必要があります。カウントが追加されました。とにかくありがとう! – Victor