gpt4 book ai didi

MySQL 将表/列设置为变量

转载 作者:行者123 更新时间:2023-11-30 00:08:33 27 4
gpt4 key购买 nike

我在使用 MySQL 的数据库中有一些表(引擎是 MyISAM)。我试图找到每列中最长字符串的长度(所有数据都是文本)。现在我正在尝试运行如下代码:

SELECT LENGTH(col) FROM schema.table ORDER BY LENGTH(col) DESC LIMIT 1;

我一直在手动输入列名和表名。然而,继续下去将需要永远。

至少,有没有办法让我分配一个变量并用该变量替换 col 的两个实例,这样我就不必重复输入它?

如果我能够对于给定的表,迭代所有列并返回每列中最长字符串的长度,那就更好了。

谢谢!

编辑:Hybridzz,这两个链接都不能解决我的问题;我似乎无法让 MySQL 接受变量赋值。

我事先也尝试过这四种搜索: MySQL: Assign column value to variable

Setting columns variably in Mysql

https://stackoverflow.com/questions/2642677/how-to-use-database-name-as-a-value

mysql, iterate through column names

最佳答案

您想要的基本 SQL 是:

select max(length(col1)), max(length(col2)), . . .
from table t;

您可以通过查询information_schema.columns来获取表中所有varchar列的表达式:

select group_concat('max(length(', column_name, '))' separator ', ')
from information_schema.column
where data_type = 'varchar' and table_name = 'table' and table_schema = 'schema';

然后您可以将表达式复制到选择中。或者将它们放入字符串中并使用 prepare

关于MySQL 将表/列设置为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24297528/

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