mysql - 确定字段中的最大字符数

标签 mysql sql phpmyadmin

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

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

谢谢

最佳答案

使用CHAR_LENGTH,例如

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

如果列数未知,也可以使用动态 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;

关于mysql - 确定字段中的最大字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141777/

相关文章:

c# - 异常 : Deadlock

MYSQL 查询在 phpmyadmin 上运行但不通过 ActiveCollab 中的 mysql_query

RaspberryPi 3 中的 Mysql 和 phpmyadmin 安装

php - CakePHP 数据库查询 DISTINCT/GROUP BY 错误

mysql - sql HAVING max(count()) 返回零行

mysql - #1055 - SELECT 列表的表达式 #6 不在 GROUP BY 子句中并且包含非聚合列

php - MySQL 在同一查询中使用查询结果

python - 我该如何解决这个问题 : ERROR: Command errored out with exit status 1 : when trying to "pip install psycopg2"

mysql - SQL - 使用另一个表中的数据更新一个表

mysql - phpmyadmin 和外键