您好我使用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];
?>
答案 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服务器造成不良影响。不要问我怎么知道。 : - )