1

Magento Enterprise 1.13 (200 以上) のテーブルの数に驚いています。物事が整理されている方法を把握しようとしていますが、各テーブルの列数を知っておくと役立つと思います。次のクエリは、各テーブルの列とその data_types の内訳を取得します。

SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = `<database_name>`
ORDER BY TABLE_NAME;

しかし、各テーブルの列数も知りたいです。

SELECT COUNT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = '<database_name>'
AND TABLE_NAME IN (
    SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = '<database_name>'
);

残念ながら、上記のクエリはデータベース内の列の総数を返します。私のアプローチは単純すぎて、LOOP または FOREACH ステートメントが探しているソリューションに近いことに気付きましたが、その点に飛躍する方法がわかりません。

4

1 に答える 1

1
SELECT TABLE_NAME, COUNT(COLUMN_NAME) AS NoCOLUMNS
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = '<database_name>'
    AND TABLE_NAME IN (SELECT TABLE_NAME
                       FROM INFORMATION_SCHEMA.TABLES 
                       WHERE TABLE_SCHEMA = '<database_name>')
GROUP BY TABLE_NAME;

基本的な GROUP BY DEMO

于 2015-05-29T17:14:19.123 に答える