首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个表中获得所有列的最大值

问从多个表中获得所有列的最大值
EN

Stack Overflow用户
提问于 2020-07-14 09:28:12
回答 1查看 199关注 0票数 1

如何获得DB (mysql)中所有表的最大主键?

我有以下查询从all columns from all tables数据库检索主键的INT数据类型

代码语言:javascript
复制
SELECT 
    table_name, column_name
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    table_schema = 'my_db'
        AND column_key = 'PRI'
        AND data_type LIKE '%int%'
ORDER BY TABLE_NAME , COLUMN_NAME

但是现在,我很难从所有表中的所有这些列中获得最大值。有办法做到这一点吗?我的预期输出将是单个整数,这是所有这些列中最大的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-14 10:47:17

假设所有列都具有兼容类型(您正在检查该类型),则可以使用以下元数据构造查询:

代码语言:javascript
复制
select group_concat(replace(replace('select max([column_name]) from [table_name]', '[column_name]', column_name), '[table_name]', table_name)
                    separator '\nunion all\n')
from INFORMATION_SCHEMA.COLUMNS
where table_schema = 'my_db' and
     column_key = 'PRI' and
     data_type LIKE '%int%'
order by TABLE_NAME, COLUMN_NAME;

我只需复制查询并运行它。但是,您可以通过为结果字符串分配一个变量并使用prepare/exec来更多地自动化该过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62892028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档