gpt4 book ai didi

mysql - 从所有表中选择列名等于给定值的所有行

转载 作者:行者123 更新时间:2023-11-29 07:05:52 25 4
gpt4 key购买 nike

有没有办法选择列名符合特定条件的所有表中的所有行?我知道如何选择包含给定列名的所有表:

SELECT TABLE_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'customer_id'

有没有办法使用拉出的表名连接表?例如,像这个(显然不正确的)查询那样工作的东西试图做到这一点。

SELECT * FROM (SELECT DISTINCT TABLE_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'customer_id') WHERE customer_id = 1

最佳答案

不是在普通 SQL 中。您不能将一个查询的结果用作外部查询中的表/字段名称。在你的非工作示例中,你会得到一个看起来像的结果集

+---------------+
| TABLE_NAME |
+---------------+
| name_of_table |
+---------------+

然后您尝试从中过滤 customer_id 字段,该字段在内部结果中不存在。

您可以在存储过程中动态构建查询语句,并按照此处的详细说明执行该语句:How To have Dynamic SQL in MySQL Stored Procedure

但是,需要这样的动态查询通常是表设计不当的标志。

关于mysql - 从所有表中选择列名等于给定值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258601/

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