3

我正在处理的 MySQL 数据库的字段大小已被确定为相当随意,我想根据其当前数据对其进行审查。所以我想确定每个字段的最大字符数,所以我确信在更新字段大小时不会丢失任何数据。

phpmyadmin 中是否有可以帮助我的功能或 SQL 语句?

谢谢

4

2 回答 2

8

使用CHAR_LENGTH,例如

SELECT MAX(CHAR_LENGTH(column1)) maxCol1,
       MAX(CHAR_LENGTH(column2)) maxCol2,
       MAX(CHAR_LENGTH(column3)) maxCol3
FROM tableName

Dynamic SQL如果您有未知数量的列,您也可以使用。您需要提供的只是数据库的名称和表的名称,

SET @db_Name = 'db_2_21a29';
SET @tb_name = 'TABLENAME';
SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT('MAX(CHAR_LENGTH(', COLUMN_NAME, ')) AS `', COLUMN_NAME, '`')
  ) INTO @sql
FROM information_schema.columns
WHERE TABLE_NAME = @tb_name AND
      TABLE_SCHEMA = @db_Name;

SET @sql = CONCAT('SELECT ',@sql, 'FROM ', @tb_name);

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
于 2013-01-03T15:22:01.553 回答
-1

在 phpmyadmin 中,您可以从表的“结构”选项卡中了解这些数据。看附图:

在此处输入图像描述

于 2013-01-03T15:28:15.363 回答