获取mysql中表的所有列的大小

时间:2016-08-22 10:53:56

标签: php mysql

您好我使用sql查询来查找mysql中表的列大小。此代码适用于查找一列的大小。但我想获得mysql中表的所有列的大小。

$sql="SELECT column_name,  character_maximum_length FROM   information_schema.columns 
     WHERE  table_name = 'user' AND column_name = 'Country'";

如果我尝试过这段代码,但它不起作用: -

<?php

    $sql="SELECT CONCAT(CHARACTER_LENGTH(col1,col2)) FROM tableName 
             WHERE col1 = 'Country' , col2 = 'email'  AND tableName='user'";
    $r= mysql_query($sql);
    $v=mysql_fetch_row($r);
    echo $v[0];
    echo $v[1]; 
?>

1 个答案:

答案 0 :(得分:2)

information_schema.columns是一张桌子。您需要使用有效的SQL查询进行查询。这是一个例子。

 SELECT SUM(character_maximum_length) length,
        table_name
   FROM information_schema.columns 
  WHERE table_name='user'
    AND table_schema=DATABASE()
    AND column_name IN ('Country', 'email')
  GROUP BY table_name

请注意,从information_schema表中获取信息时,必须按schema_name(数据库名称)进行过滤。另请注意,列的大小对数字和日期列的工作方式不同。

不要仔细研究从各种表格中获得的结果,而不是依赖这些数据。

并且,尝试更新这些information_schema表可能会对MySQL服务器造成不良影响。不要问我怎么知道。 : - )