gpt4 book ai didi

php - mysql如何获取每一列的最大设置长度

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:58 29 4
gpt4 key购买 nike

我有一个 HTML 表单,我需要在相应的 MySQL 数据库中获取每个字段的最大设置长度,以便为我的文本字段的 maxlength 属性设置一个合适的值。是否有 MySQL 查询会给我那些设置的最大字段长度?

我拥有的最佳解决方案是查询 SHOW COLUMNS FROM {database name},但这将返回字段类型,最大字段长度在括号中(例如 int(6)、varchar(20 ), decimal(5,1), 等等),所以我会使用 PHP 或其他东西来过滤掉最大长度,而且似乎必须有更好的方法。

最佳答案

不清楚您为什么需要这个。你不知道你插入数据的表和列吗?

无论如何,这里有一个查询可以告诉您给定数据库中所有表中最长的 VARCHAR 的长度:

SELECT MAX(CHARACTER_MAXIMUM_LENGTH) AS MAX_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'varchar'
AND TABLE_SCHEMA='mydatabase'

如果您需要知道每个 列的长度:

SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'varchar'
AND TABLE_SCHEMA='mydatabase'

您可能想在此处引用引用文档:https://dev.mysql.com/doc/refman/5.7/en/columns-table.html


回复:您的评论:

当然,这是有道理的。但是任何数据库查询都有一点开销,包括 INFORMATION_SCHEMA。如果您不必运行额外的查询来获取此元数据,那会更好。

许多应用程序框架在某种类型的配置文件中保留有关模式和表的元数据。 XML、YAML、JSON 等。这会复制存储在数据库中的内容,但通常可以更快地访问它。

多年前,我是 Zend Framework 1.0 框架的开发人员之一。 Zend_Db_Table 类确实查询数据库以获取列、数据类型等,但事实证明,如此频繁地查询 INFORMATION_SCHEMA 会使应用程序速度太慢。所以我们implemented an optional cache component that you could plug into the Zend_Db_Table object ,并且它将允许表从一个 PHP 请求到下一个请求“记住”它的元数据。

关于php - mysql如何获取每一列的最大设置长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46738087/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com