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;

基本分组演示

于 2015-05-29T17:14:19.123 回答