【问题标题】:simplifying a MySQL query, pulling table name dynamically from table data简化 MySQL 查询,从表数据中动态提取表名
【发布时间】:2011-04-19 11:02:13
【问题描述】:

我有一个 mysql 表,其中一个字段是“模板”。此字段将指向正确的模板表以引用该特定模板的唯一字段。

例如,如果 table.template = 'news',我还需要从 news_template 表中提取信息以获得完整的列表信息集。现在我只知道如何使用来自 PHP 的两个单独的查询调用来做到这一点。

无论如何,是否可以根据其中一列中的数据使用动态表名进行连接?

提前致谢!

【问题讨论】:

标签: mysql


【解决方案1】:

如果不将其拆分为多个查询,我认为这不能直接在 MySQL 中完成。

我通常通过查询确定正确表名所需的信息来处理此问题,然后使用的脚本语言(PHP?)使用该信息组合另一个查询。

【讨论】:

  • 是的,这是我的第一个想法,但我想尝试限制我对服务器进行的查询数量。只是想检查并确保我没有遗漏任何东西。
【解决方案2】:

如果可以,我建议将您的*_template 表重组为一个名为template_data 的新表。然后,该表可以有一个名为template_name 的列。那么选择正确的数据就变成了一个简单的SQL查询,例如。

select Parameter, Value from template_data where template_name = ?

【讨论】:

  • 问题在于模板的复杂性,我将有一些 3 列和一些 49 列,所有这些都是独一无二的,因此它将是一个巨大的表格。这不会使查询变慢吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 2016-02-01
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多