gpt4 book ai didi

mysql - 如果表中的列具有某个特定值,如何查询 DBName

转载 作者:行者123 更新时间:2023-11-29 18:33:54 26 4
gpt4 key购买 nike

想象一下,当您连接到服务器时,这是您的数据库结构。大多数时候,您将拥有相同的表,但值不同。如果我的表的某个值(即 Tbl1 ColumnName Col1)的值等于“已接受”,我想查询数据库名称。

DbName1
Tbl1
Col1 -- 'Accepted' // this are the values col1 holds
-- 'Rejected'
-- 'In Process'
-- 'Awaiting Processing'
DbName2
Tbl1
Col1 -- 'NotAccepted'
-- 'Rejected'

DbName3
Tb1
Col1 -- 'NotAccepted'
-- 'Awaiting Processing'
DbName4
Tbl1
Col1 -- 'Accepted'
-- 'Rejected'

Expected Result
DbName1
DbName4 -- since both DB has Table name Tbl1 whose column Col1 = 'Accepted'

在我的 Sql 环境中,我至少有 37 个数据库。

非常感谢您的帮助。

最佳答案

如果您知道数据库名称和表名称以及列名称,则可以使用如下所示的 UNION 解决方案:

SELECT distinct dbname
FROM (
select 'DbName1' as dbname, col1 from DbName1.tb1
union all
select 'DbName2' as dbname, col1 from DbName2.tb1
union all
select 'DbName3' as dbname, col1 from DbName3.tb1
union all
select 'DbName4' as dbname, col1 from DbName4.tb1
) dbs
WHERE dbs.col1 = 'Accepted';

尽管这个查询可以工作,但您确实应该考虑拥有一个更好的规范化数据库,而不是 4 个(或可能更多)具有相同结构和数据的数据库。

关于mysql - 如果表中的列具有某个特定值,如何查询 DBName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45473535/

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