クエリが返す列の数を取得することはできますか? これは、php などのバインドされたスクリプト言語で簡単に実行できますが、db のみのソリューションを探しています。
例:
CountCols(SELECT 'a','b','c')
=> 3
CountCols(SELECT * FROM information_schema.session_variables)
=> 2
クエリが返す列の数を取得することはできますか? これは、php などのバインドされたスクリプト言語で簡単に実行できますが、db のみのソリューションを探しています。
例:
CountCols(SELECT 'a','b','c')
=> 3
CountCols(SELECT * FROM information_schema.session_variables)
=> 2
これはうまくいきますか?
select
count(*)
from
`information_schema`.`columns`
where
`table_schema` = 'my_table_schema' and `table_name` = 'my_table_name';
table_schema
テーブル名が複数のデータベースに存在する場合にのみ使用する必要があります。
応答コメントに基づいて、動的な列数を数えようとしています。一時テーブルを使用してこれを実行できる場合もありますが、パッチをインストールしないと一時テーブルのデータにアクセスできません。
注目すべきは、一時テーブルから列を選択する方法を尋ねる同様の未解決の SO 質問があります。
テーブルの列を知りたい場合は、次のようにします。
DESCRIBE `table_name`
そうしないと、選択する以外*
に特定の列を選択するため、選択クエリで列数を取得する「実際の」方法はありません->したがって、選択している列の数がわかります。
おそらくここで答えが見つかります:http://dev.mysql.com/doc/refman/5.0/en/columns-table.html
テーブル名のパラメーターを取得するクエリを作成し、そのテーブルの列をクエリして合計します。